Dobrze, że moduł Pythona ma dokumentację wyjaśniającą, co moduł robi, co zapewnia, przykłady użycia klas. Różni się to od komentarzy, które często widzisz na początku pliku, podając informacje o prawach autorskich i licencji, których IMO nie powinno umieszczać w dokumentacji (niektórzy nawet twierdzą, że powinny one całkowicie zniknąć, patrz np. Http: // hackerboss. pl / get-rid-of-templates / )
W pylint 2.4 i nowszych możesz rozróżniać różne missing-docstring
, używając trzech następujących podkomunikatów :
C0114
( missing-module-docstring
)
C0115
( missing-class-docstring
)
C0116
( missing-function-docstring
)
Więc następujący .pylintrc
plik powinien działać:
[MASTER]
disable=
C0114,
W przypadku poprzednich wersji Pylint nie ma oddzielnego kodu dla różnych miejsc, w których mogą wystąpić ciągi dokumentów, więc wszystko, co możesz zrobić, to wyłączyć C0111. Problem polega na tym, że jeśli wyłączysz to w zakresie modułu, zostanie ono wyłączone wszędzie w module (tj. Nie otrzymasz żadnej linii C dla brakującego ciągu dokumentacji funkcji / klasy / metody. Co prawdopodobnie nie jest miłe.
Więc proponuję dodać ten mały brakujący ciąg dokumentów, mówiąc coś takiego:
"""
high level support for doing this and that.
"""
Wkrótce znajdziesz przydatne rzeczy do umieszczenia w tym miejscu, takie jak dostarczenie przykładów użycia różnych klas / funkcji modułu, które niekoniecznie należą do poszczególnych dokumentów klas / funkcji (na przykład jak te interakcji lub coś w rodzaju skróconej instrukcji obsługi).
$ cat my_module/test/__init__.py
"Hey, PyLint? SHUT UP"
Jest późno, ale nadal uważam, że jest przydatny. Więc dzielenie się. Znalazłem to tutaj .
Możesz dodać flagę „--errors-only” do pylint, aby wyłączyć ostrzeżenia.
Aby to zrobić, przejdź do ustawień. Edytuj następujący wiersz:
"python.linting.pylintArgs": []
Tak jak
"python.linting.pylintArgs": ["--errors-only"]
I jesteś gotowy!
źródło
"python.linting.pylintArgs": ["--disable=C0111"],
prawdopodobnie jest bardziej przydatne, ponieważ po prostu wycisza ostrzeżenia dotyczące ciągów dokumentów. Jednak ustawienie rozwiązuje kwestię OP, jak wyłączyć te ostrzeżenia tylko na poziomie modułu.Myślę, że poprawka jest stosunkowo łatwa bez wyłączania tej funkcji.
def kos_root(): """Return the pathname of the KOS root directory.""" global _kos_root if _kos_root: return _kos_root
Wszystko, co musisz zrobić, to dodać ciąg potrójnych podwójnych cudzysłowów w każdej funkcji.
źródło
Szukałem odpowiedzi, ponieważ, jak powiedział @cerin, w projektach Django dodawanie dokumentów modułu do każdego z plików, które django automatycznie generuje podczas tworzenia nowej aplikacji, jest uciążliwe i zbędne.
Tak więc, aby obejść fakt, że pylint nie pozwala określić różnicy w typach ciągów dokumentów, możesz to zrobić:
pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module
Musisz zaktualizować szablon msg, aby podczas grep nadal znać nazwę pliku. Zwraca wszystkie inne typy brakujących ciągów dokumentów, z wyłączeniem modułów.
Następnie możesz naprawić wszystkie te błędy, a potem po prostu uruchomić:
źródło
Nie. Pylint nie pozwala obecnie na rozróżnianie ostrzeżeń dotyczących ciągów dokumentów.
Możesz jednak użyć flake8 do wszystkich sprawdzeń kodu w Pythonie wraz z rozszerzeniem doc-string, aby zignorować to ostrzeżenie.
Zainstaluj rozszerzenie doc-string za pomocą pip (wewnętrznie używa pydocstyle ).
Możesz wtedy po prostu użyć
--ignore D100
przełącznika. Na przykładflake8 file.py --ignore D100
źródło
W pylint 2.4 i nowszych możesz rozróżniać różne
missing-docstring
, używając trzech następujących podkomunikatów :C0114
(missing-module-docstring
)C0115
(missing-class-docstring
)C0116
(missing-function-docstring
)Więc następujący
.pylintrc
plik powinien działać:[MASTER] disable= C0114, # missing-module-docstring
źródło
Po prostu umieść następujące wiersze na początku każdego pliku, w którym chcesz wyłączyć te ostrzeżenia.
# pylint: disable=missing-module-docstring # pylint: disable=missing-class-docstring # pylint: disable=missing-function-docstring
źródło
missing-docstring
(działa dla wersji przed 2.4.0).Edytuj „C: \ Users \ Your User \ AppData \ Roaming \ Code \ User \ settings.json” i dodaj te
python.linting.pylintArgs
wiersze na końcu, jak pokazano poniżej:{ "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" ], }
źródło
(1) CTRL + SHIFT + P (2) Następnie wpisz i kliknij> preferencje: skonfiguruj ustawienia specyficzne dla języka (3), a następnie wpisz python po tym poza kodem
{ "python.linting.pylintArgs": [ "--load-plugins=pylint_django","--errors-only" ], }
źródło
Przejdź do „settings.json” i wyłącz Pythona
pydocstyle
"python.linting.pydocstyleEnabled": false
źródło
W moim przypadku, z pylint 2.6.0, brakujące wiadomości docstring nie znikają nawet po wyłączeniu jawnie
missing-module-docstring
,missing-class-docstring
amissing-function-docstring
w moim.pylintrc
pliku. Wreszcie zadziałała dla mnie następująca konfiguracja:Najwyraźniej pylint 2.6.0 nadal sprawdza poprawność ciągów dokumentów, chyba że oba sprawdzenia są wyłączone.
źródło