Comment puis-je désactiver les Avertissements "missing docstring" au niveau des fichiers dans Pylint?

Pylint lance des erreurs que certains fichiers sont des docstrings manquants. J'essaie d'ajouter des docstrings à chaque classe, méthode et fonction mais il semble que Pylint vérifie aussi que les fichiers devraient un docstring au début de celui-ci. Puis-je désactiver cette en quelque sorte? Je voudrais être informé de l'absence d'un fichier docstring dans une classe, une fonction ou une méthode, mais il ne devrait pas être obligatoire pour un fichier d'avoir un fichier docstring.

(Est-il un terme du jargon juridique trouve souvent au début d'un fichier source propriétaire? Des exemples? Je ne sais pas si c'est correct de poster une question aussi insignifiante séparément.)

38
demandé sur Mridang Agarwalla 2011-10-24 18:51:01

5 réponses

c'est bien pour un module Python d'avoir un docstring, expliquant ce que le module fait, ce qu'il fournit, des exemples d'utilisation des classes. Ceci est différent des commentaires que vous voyez souvent au début d'un dossier donnant les informations de copyright et de licence, qui IMO ne devrait pas aller dans le docstring (certains font même valoir qu'ils devraient disparaître tout à fait, voir par exemple. http://hackerboss.com/get-rid-of-templates/)

Pylint n'a pas de code séparé pour les différents endroits où des docstrings peuvent se produire, donc tout ce que vous pouvez faire est de désactiver C0111. Le problème est que si vous désactivez ceci au module scope, alors il sera désactivé partout dans le module (I. e vous ne recevrez pas de ligne C pour fonction / Classe / méthode manquante docstring. Ce qui n'est sans doute pas gentil, et vous voudrez peut-être y contribuer pylint question sur github si cela vous dérange.

donc ce que je suggère c'est d'ajouter cette petite corde manquante, disant quelque chose comme:

"""
high level support for doing this and that.
"""

bientôt, vous trouverez des choses utiles à y mettre, comme fournir des exemples de la façon d'utiliser les différentes classes / fonctions du module qui n'appartiennent pas nécessairement aux docstrings individuels des classes / fonctions (comme la façon dont ceux-ci interagissent, ou quelque chose comme un guide de démarrage rapide).

35
répondu gurney alex 2016-11-17 12:00:26

il est tard, mais je l'ai quand même trouvé utile. Si le partage. Trouvé ce ici.

Vous pouvez ajouter "--erreurs" seul drapeau pour pylint désactiver les avertissements.

pour ce faire, allez dans Paramètres. Modifiez la ligne suivante:

"python.linting.pylintArgs": []

"python.linting.pylintArgs": ["--errors-only"]

et vous êtes prêt à partir!

9
répondu Nilesh Kevlani 2017-11-10 16:35:19

je suis venu chercher une réponse parce que, comme @cerin l'a dit, dans les projets Django il est encombrant et redondant d'ajouter des docstrings de module à chacun des fichiers que django génère automatiquement lors de la création d'une nouvelle application.

donc, pour contourner le fait que pylint ne vous permet pas de spécifier une différence dans les types de docstring, vous pouvez faire ceci:

pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module

vous devez mettre à jour le modèle msg de sorte que lorsque vous grep vous saurez toujours le nom du fichier. Ceci renvoie à tous les autres types de docstring manquants, à l'exclusion des modules.

Ensuite, vous pouvez corriger toutes ces erreurs, et ensuite il suffit d'exécuter:

pylint */*.py --disable=missing-docstring
7
répondu mattsl 2016-09-15 08:08:10

Non. Pylint ne permet pas actuellement de faire une distinction entre les Avertissements doc-string.

cependant, vous pouvez utiliser flake8 pour toutes les vérifications de code python avec l'extension doc-string pour ignorer cet avertissement.

installez l'extension doc-string avec pip (en interne, il utilise pydocstyle).

pip install flake8_docstrings

Vous pouvez alors utilisez simplement les --ignore D100 switch. Par exemple,flake8 file.py --ignore D100

4
répondu henryJack 2018-09-04 06:06:42

je pense que le correctif est relativement facile sans désactiver cette fonctionnalité.

def kos_root():
    """Return the pathname of the KOS root directory."""
    global _kos_root
    if _kos_root: return _kos_root

Tout ce que vous devez faire est d'ajouter le triple guillemets chaîne dans chaque fonction.

2
répondu Carlos E Rodriguez 2016-11-23 03:34:04