Es ist schön, wenn ein Python-Modul über eine Dokumentzeichenfolge verfügt, in der erklärt wird, was das Modul tut, was es bietet und wie die Klassen verwendet werden. Dies unterscheidet sich von den Kommentaren, die Sie häufig am Anfang einer Datei mit den Copyright- und Lizenzinformationen sehen, die IMO nicht in die Dokumentenkette aufnehmen sollte (einige argumentieren sogar, dass sie vollständig verschwinden sollten, siehe z. B. http: // hackerboss. com / Vorlagen loswerden / )
Mit Pylint 2.4 und höher können Sie missing-docstring
anhand der drei folgenden Untermeldungen zwischen den verschiedenen unterscheiden :
C0114
( missing-module-docstring
)
C0115
( missing-class-docstring
)
C0116
( missing-function-docstring
)
Die folgende .pylintrc
Datei sollte also funktionieren:
[MASTER]
disable=
C0114,
In früheren Versionen von Pylint gibt es keinen separaten Code für die verschiedenen Stellen, an denen Dokumentzeichenfolgen auftreten können. Sie können also nur C0111 deaktivieren. Das Problem ist, dass wenn Sie dies im Modulbereich deaktivieren, es überall im Modul deaktiviert wird (dh Sie erhalten keine C-Zeile für fehlende Funktions- / Klassen- / Methoden-Dokumentzeichenfolge. Das ist wohl nicht schön.
Ich schlage also vor, diesen kleinen fehlenden Docstring hinzuzufügen und so etwas wie Folgendes zu sagen:
"""
high level support for doing this and that.
"""
Schon bald werden Sie nützliche Dinge finden, die Sie dort einfügen können, z. B. Beispiele für die Verwendung der verschiedenen Klassen / Funktionen des Moduls, die nicht unbedingt zu den einzelnen Dokumentzeichenfolgen der Klassen / Funktionen gehören (z. B. wie diese) interagieren oder so etwas wie eine Kurzanleitung).
$ cat my_module/test/__init__.py
"Hey, PyLint? SHUT UP"
Es ist spät, aber ich fand es trotzdem nützlich. Also teilen. Fand das hier .
Sie können das Flag "--errors-only" für pylint hinzufügen, um Warnungen zu deaktivieren.
Gehen Sie dazu zu Einstellungen. Bearbeiten Sie die folgende Zeile:
"python.linting.pylintArgs": []
Wie
"python.linting.pylintArgs": ["--errors-only"]
Und du kannst loslegen!
quelle
"python.linting.pylintArgs": ["--disable=C0111"],
wahrscheinlich auch mehr, da es nur Warnungen vor Dokumentzeichenfolgen beruhigt. Die Einstellung befasst sich jedoch mit der Frage des OP, wie diese Warnungen nur auf Modulebene deaktiviert werden können.Ich denke, das Update ist relativ einfach, ohne diese Funktion zu deaktivieren.
def kos_root(): """Return the pathname of the KOS root directory.""" global _kos_root if _kos_root: return _kos_root
Alles, was Sie tun müssen, ist, in jeder Funktion die dreifache doppelte Anführungszeichenfolge hinzuzufügen.
quelle
Ich habe nach einer Antwort gesucht, weil es, wie @cerin sagte, in Django-Projekten umständlich und redundant ist, jeder Datei, die Django beim Erstellen einer neuen App automatisch generiert, Modul-Docstrings hinzuzufügen.
Um dieses Problem zu umgehen, können Sie mit Pylint keinen Unterschied bei den Dokumentzeichenfolgentypen angeben:
pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module
Sie müssen die msg-Vorlage aktualisieren, damit Sie beim Grep immer noch den Dateinamen kennen. Dies gibt alle anderen fehlenden Docstring-Typen mit Ausnahme von Modulen zurück.
Dann können Sie all diese Fehler beheben und anschließend einfach ausführen:
quelle
Nein. Mit Pylint können Sie derzeit nicht zwischen Warnungen für Dokumentzeichenfolgen unterscheiden.
Sie können flake8 jedoch für alle Python-Codeprüfungen zusammen mit der Erweiterung doc-string verwenden, um diese Warnung zu ignorieren.
Installieren Sie die doc-string-Erweiterung mit pip (intern wird pydocstyle verwendet ).
Sie können dann einfach den
--ignore D100
Schalter verwenden. Zum Beispielflake8 file.py --ignore D100
quelle
Mit Pylint 2.4 und höher können Sie
missing-docstring
anhand der drei folgenden Untermeldungen zwischen den verschiedenen unterscheiden :C0114
(missing-module-docstring
)C0115
(missing-class-docstring
)C0116
(missing-function-docstring
)Die folgende
.pylintrc
Datei sollte also funktionieren:[MASTER] disable= C0114, # missing-module-docstring
quelle
Setzen Sie einfach die folgenden Zeilen an den Anfang jeder Datei, in der Sie diese Warnungen deaktivieren möchten.
# pylint: disable=missing-module-docstring # pylint: disable=missing-class-docstring # pylint: disable=missing-function-docstring
quelle
missing-docstring
(funktioniert für Versionen vor 2.4.0).Bearbeiten Sie "C: \ Benutzer \ Ihr Benutzer \ AppData \ Roaming \ Code \ Benutzer \ settings.json" und fügen Sie diese
python.linting.pylintArgs
Zeilen am Ende wie unten gezeigt hinzu:{ "team.showWelcomeMessage": false, "python.dataScience.sendSelectionToInteractiveWindow": true, "git.enableSmartCommit": true, "powershell.codeFormatting.useCorrectCasing": true, "files.autoSave": "onWindowChange", "python.linting.pylintArgs": [ "--load-plugins=pylint_django", "--errors-only" ], }
quelle
(1) STRG + UMSCHALT + P (2) Geben Sie dann ein und klicken Sie auf> Einstellungen: Konfigurieren Sie die sprachspezifischen Einstellungen (3) und geben Sie anschließend Python nach dem Code ein
{ "python.linting.pylintArgs": [ "--load-plugins=pylint_django","--errors-only" ], }
quelle
Gehen Sie zu "settings.json" und deaktivieren Sie Python
pydocstyle
"python.linting.pydocstyleEnabled": false
quelle
In meinem Fall mit Pylint 2.6.0, würden die fehlenden Docstring Nachrichten nicht verschwinden, auch nach explizit deaktivieren
missing-module-docstring
,missing-class-docstring
undmissing-function-docstring
in meiner.pylintrc
Datei. Schließlich hat die folgende Konfiguration für mich funktioniert:Anscheinend validiert Pylint 2.6.0 weiterhin Dokumentzeichenfolgen, es sei denn, beide Überprüfungen sind deaktiviert.
quelle