web-dev-qa-db-fra.com

Que signifie '# noqa' dans Python commentaires?

Lors de la recherche dans un projet Python, j'ai trouvé quelques lignes commentées avec # noqa.

import sys
sys.path.append(r'C:\dev')
import some_module   # noqa

Que signifie noqa en Python? Est-ce spécifique à Python uniquement?

87
Ishpreet

Ajouter # noqa à une ligne indique que linter (un programme qui vérifie automatiquement la qualité du code) ne doit pas vérifier cette ligne. Tout avertissement généré par le code sera ignoré.

Cette ligne peut avoir quelque chose qui "a l'air mauvais" pour le linter, mais le développeur le comprend et veut qu'il soit là pour une raison quelconque.

Pour plus d'informations, voir Documentation de Flake8 relative à la sélection et à l'ignorance des violations .

114
jimf

noqa = NO-QA (NO Quality Assurance)

Il est généralement fait référence à la programmation Python pour ignorer les avertissements PEP8 .

En termes simples, les lignes ayant #noqa à la fin seront ignorées par les programmes linter et ne déclencheront aucun avertissement.

30
Vishvajit Pathak

Vous savez quoi? Même Guido van Rossum (le créateur de Python) a posé cette question auparavant : D

n peu Étymologie de # noqa :

C'était autrefois "nopep8" mais quand Flake8 et Pep8 voulaient un qualificatif commun, @florentx suggérait "NoQA" comme dans "No Quality Assurance" (iirc) et cela collait.

Quelques utilisations basiques de # noqa (avec flake8 ):

  • # flake8: noqa: les fichiers contenant cette ligne sont ignorés
  • lignes contenant un # noqa comment à la fin : ne produira pas d'avertissements
  • # noqa: <error>, par exemple, # noqa: E234 à la fin : ignorer des erreurs spécifiques sur une ligne
    • plusieurs codes d'erreur peuvent être donnés, séparés par une virgule
    • les deux points avant la liste des codes sont obligatoires
2
YaOzI