Vous êtes ici

CNES Pylint Extension


CNES Pylint Extension est un ensemble de vérifications complémentaires de pylint permettant de couvrir davantage le standard des règles de codage Python CNES.

Cette extension permet de vérifier les règles suivantes :

  • COM.FLOW.ExitLoop - Interdiction d'implémenter plus d'une sortie dans les boucles. - R5101 - multiple-exit-statements
  • COM.DESIGN.Alloc - Préférer allouer et libérer les ressources dans le même niveau algorithmique. - R5106 - use-context-manager
  • COM.MET.Complexity - Obligation de limiter le nombre cyclomatique McCabe en fonction de la classe logiciel : A : V(g) ≤ 10 B : V(g) ≤ 10 C : V(g) ≤ 15D : V(g) ≤ 25 - R5301 - too-high-complexity
  • COM.MET.ComplexitySimplified - Obligation de limiter le nombre cyclomatique McCabe simplifié en fonction de la classe logiciel : A : Vs(g) ≤ 10 B : Vs(g) ≤ 10 C : Vs(g) ≤ 12 D : Vs(g) ≤ 20 - R5302 - too-high-complexity-simplified
  • COM.MET.RatioComment - Obligation de respecter le ratio minimum de commentaire par rapport aux lignes de code en fonction de la classe logiciel : A : RComment ≥ 30% B : RComment ≥ 30% C : RComment ≥ 20% D : RComment ≥ 20% - R5201 - too-few-comments
  • COM.FLOW.Abort - Interdiction d'arrêter brutalement un processus - R5401 - sys-exit-used
  • COM.FLOW.FilePath - Obligation d'utiliser les moyens de paramétrage du langage pour accéder aux fichiers. - R5402 - os-environ-used
  • COM.FLOW.ExitLoop - Interdiction d'implémenter plus d'une sortie dans les boucles. - R5101 - multiple-exit-statements
  • COM.FLOW.Recursion - Interdiction d'utiliser la récursivité directe et indirecte - R5105 - recursive-call
  • COM.FLOW.CheckArguments - Obligation de contrôler les paramètres passés à un programme - R5403 - sys-argv-used
  • COM.INST.LoopCondition - Interdiction d'utiliser des expressions d'égalité ou de différence dans les conditions des boucles (utiliser les inégalités) - R5103 - bad-exit-condition
  • PY.MET.Decorator - Éviter d’empiler plus de 5 décorateurs. - R5102 - too-many-decorators
  • PY.NAME.Homonymy - Interdiction de nommer de la même manière un attribut « donnée » et un attribut « méthode », ou de nommer un attribut map, filter, apply, input et autres objects/fonctions Python - R5104 - builtin-name-used

 Il existe deux versions, compatibles Pylint 1.5 et Pylint 1.6

https://github.com/lequal/cnes-pylint-extension