121 votes

Flake8 : Ignorer l'avertissement spécifique pour tout le fichier

El Ignorer les erreurs Les docs listent 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 todo les erreurs pour un fichier entier :

# flake8: noqa

from foo import unused
function_that_doesnt_exist()
x = 1+       2

... et deux façons, soit par la configuration, soit par les options de la ligne de commande, de désactiver une erreur particulière. à l'échelle mondiale sur l'ensemble d'un projet.

Mais que faire si je veux ignorer un particulier sur l'ensemble d'une simple par exemple, pour désactiver les avertissements concernant les importations inutilisées dans un fichier __init__.py qui importe simplement un ensemble de classes afin que le code d'autres paquets puisse les importer à son tour ? La documentation ne semble pas indiquer de syntaxe pour cela. Est-ce possible ?

4 votes

Pour votre exemple particulier, la méthode officiellement recommandée (IIRC) consiste à donner un nom explicite à l'utilisateur. __all__ qui liste les éléments importés.

125voto

Ross MacArthur Points 684

Depuis la version 3.7.0 de Flake8, vous pouvez le faire en utilisant la commande --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 noqa Vous ne pouvez pas commenter des codes spécifiques en haut d'un fichier comme vous pouvez le faire pour des lignes individuelles. # flake8: noqa: F401 peut sembler fonctionner à première vue, mais il est en fait détecté comme étant seulement # flake8: noqa ce qui signifie "ignorer todo messages dans le dossier".

0 votes

Merci ! Notez simplement que sous Windows, vous aurez besoin de guillemets doubles au lieu de guillemets simples. Et assurez-vous de vous connecter à votre dépôt avant de lancer flake8, afin qu'il puisse trouver le fichier à ignorer.

25voto

Arminius Points 462

Avant la version 3.7.0, l'ignorance d'erreurs spécifiques n'était mise en œuvre que dans les cas suivants par ligne mais pas par fichier.

Cette fonctionnalité fait l'objet d'un suivi et de discussions au sein de numéro 89 dont seule la proposition par ligne a été adoptée. Plus récemment, une implémentation a été proposée dans cette demande de fusion qui n'a pas été suivi d'effet.

Toutefois, certaines extensions ont vu le jour pour résoudre ce problème :

  • flake8-per-file-ignores vous permet d'ignorer des avertissements/erreurs spécifiques pour 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.

0 votes

De la flake8-per-file-ignores repo : "Cette extension flake8 a été abandonnée au profit de l'extension per-file-ignores intégrée dans flake8 3.7.0 et plus. Mais attention, l'option intégrée utilise une syntaxe différente". Voici une version lien à la documentation du site web de flake8 sur cette option.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X