Les erreurs d'ignorance docs répertorient actuellement un moyen d'ignorer une erreur particulière pour une ligne particulière:
example = lambda: 'example' # noqa: E731
... et une façon d'ignorer toutes les erreurs d'un fichier entier:
# flake8: noqa
from foo import unused
function_that_doesnt_exist()
x = 1+ 2
... et plusieurs manières, via la configuration ou les options de ligne de commande, de désactiver une erreur particulière globalement dans l'ensemble du projet.
Mais que se passe-t-il si je veux ignorer une erreur particulière sur l’ensemble d’un simple fichier - par exemple, pour désactiver les avertissements concernant les importations non utilisées dans un __init__.py
fichier baril qui importe juste un tas de classes afin que le code d’autres paquetages puisse les importer à son tour? Les documents ne semblent indiquer aucune syntaxe pour cela. C'est possible?
Depuis Flake8 3.7.0, vous pouvez le faire en utilisant le --per-file-ignores
option.
Exemple de ligne de commande
flake8 --per-file-ignores='project/__init__.py:F401 setup.py:E121'
Ou dans votre fichier de configuration
per-file-ignores =
project/__init__.py:F401
setup.py:E121
other_project/*:W9
Voir la documentation ici: http://flake8.pycqa.org/en/latest/user/options.html?highlight=per-file-ignores#cmdoption-flake8-per-file-ignores
Il n'est pas possible de placer un commentaire noqa
pour des codes spécifiques en haut d'un fichier, comme vous le pouvez pour des lignes individuelles. # flake8: noqa: F401
peut sembler au début fonctionner, mais il est en fait détecté comme étant seulement # flake8: noqa
, qui signifie "ignorer tous les messages du fichier" ".
Avant la version 3.7.0, ignorer des erreurs spécifiques était uniquement implémenté par ligne mais pas par fichier.
La fonctionnalité est en cours de suivi et discutée dans numéro 89 à partir de laquelle seule la proposition par ligne a été adoptée. Plus récemment, une implémentation a été proposée dans cette demande de fusion , à laquelle personne n'a donné suite.
Cependant, certaines extensions sont apparues pour résoudre le problème:
flake8-per-file-ignores
vous permet d'ignorer des avertissements/erreurs spécifiques à des fichiers spécifiques via une entrée dans la configuration.
flake8-PuTTY
prétend faire la même chose, mais n’a pas été mis à jour depuis un moment.