É bom para um módulo Python ter uma docstring, explicando o que o módulo faz, o que ele fornece, exemplos de como usar as classes. Isso é diferente dos comentários que você costuma ver no início de um arquivo fornecendo as informações de copyright e licença, que a IMO não deve ir no docstring (alguns até argumentam que eles deveriam desaparecer completamente, consulte, por exemplo, http: // hackerboss. com / get-rid-of-templates / )
Com o pylint 2.4 e superior, você pode diferenciar entre os vários missing-docstring
usando as três sub-mensagens a seguir:
C0114
( missing-module-docstring
)
C0115
( missing-class-docstring
)
C0116
( missing-function-docstring
)
Portanto, o seguinte .pylintrc
arquivo deve funcionar:
[MASTER]
disable=
C0114,
Para versões anteriores do Pylint, ele não tem um código separado para os vários locais onde docstrings podem ocorrer, então tudo que você pode fazer é desabilitar C0111. O problema é que, se você desabilitar isso no escopo do módulo, ele será desabilitado em todos os lugares do módulo (ou seja, você não obterá nenhuma linha C para função / classe / método de docstring ausente. O que indiscutivelmente não é bom.
Então, o que eu sugiro é adicionar aquela pequena docstring ausente, dizendo algo como:
"""
high level support for doing this and that.
"""
Em breve, você encontrará coisas úteis para colocar lá, como fornecer exemplos de como usar as várias classes / funções do módulo que não pertencem necessariamente às docstrings individuais das classes / funções (como estes interagir ou algo como um guia de início rápido).
$ cat my_module/test/__init__.py
"Hey, PyLint? SHUT UP"
É tarde, mas ainda achei útil. Então, compartilhando. Encontrei isso aqui .
Você pode adicionar a sinalização "--errors-only" para pylint para desativar os avisos.
Para fazer isso, vá para as configurações. Edite a seguinte linha:
"python.linting.pylintArgs": []
Como
"python.linting.pylintArgs": ["--errors-only"]
E você está pronto para ir!
fonte
"python.linting.pylintArgs": ["--disable=C0111"],
provavelmente seja mais porque apenas silencia os avisos de docstring. No entanto, a configuração aborda a questão do OP de como desativar esses avisos apenas no nível do módulo.Acho que a correção é relativamente fácil sem desativar esse recurso.
def kos_root(): """Return the pathname of the KOS root directory.""" global _kos_root if _kos_root: return _kos_root
Tudo o que você precisa fazer é adicionar a string de aspas duplas triplas em cada função.
fonte
Eu vim procurando por uma resposta porque, como disse @cerin, em projetos Django é complicado e redundante adicionar docstrings de módulo a cada um dos arquivos que o django gera automaticamente ao criar um novo aplicativo.
Portanto, como uma solução alternativa para o fato de que o pylint não permite que você especifique uma diferença nos tipos de docstring, você pode fazer o seguinte:
pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module
Você tem que atualizar o msg-template para que, ao fazer o grep, você ainda saiba o nome do arquivo. Isso retorna todos os outros tipos de docstring ausentes, exceto módulos.
Depois, você pode corrigir todos esses erros e, em seguida, executar:
fonte
Não . Atualmente, o Pylint não permite que você faça distinção entre avisos de string de documentos.
No entanto, você pode usar flake8 para toda a verificação de código Python junto com a extensão doc-string para ignorar este aviso.
Instale a extensão doc-string com pip (internamente, usa o estilo pydoc ).
Você pode então apenas usar o
--ignore D100
switch. Por exemploflake8 file.py --ignore D100
fonte
Basta colocar as seguintes linhas no início de qualquer arquivo que você deseja desativar esses avisos.
# pylint: disable=missing-module-docstring # pylint: disable=missing-class-docstring # pylint: disable=missing-function-docstring
fonte
missing-docstring
(funciona para a versão anterior a 2.4.0).Com o pylint 2.4 e superior, você pode diferenciar entre os vários
missing-docstring
usando as três sub-mensagens a seguir:C0114
(missing-module-docstring
)C0115
(missing-class-docstring
)C0116
(missing-function-docstring
)Portanto, o seguinte
.pylintrc
arquivo deve funcionar:[MASTER] disable= C0114, # missing-module-docstring
fonte
Edite "C: \ Users \ Your User \ AppData \ Roaming \ Code \ User \ settings.json" e adicione estas
python.linting.pylintArgs
linhas no final, conforme mostrado abaixo:{ "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" ], }
fonte
(1) CTRL + SHIFT + P (2) Em seguida, digite e clique em> preferências: defina as configurações específicas do idioma (3) e digite python após passar o código
{ "python.linting.pylintArgs": [ "--load-plugins=pylint_django","--errors-only" ], }
fonte
No meu caso, com o pylint 2.6.0, as mensagens docstring ausentes não desapareceriam, mesmo após desabilitar explicitamente
missing-module-docstring
,missing-class-docstring
emissing-function-docstring
em meu.pylintrc
arquivo. Finalmente, a seguinte configuração funcionou para mim:Aparentemente, o pylint 2.6.0 ainda valida docstrings, a menos que ambas as verificações sejam desabilitadas.
fonte
Vá para "settings.json" e desative o python
pydocstyle
"python.linting.pydocstyleEnabled": false
fonte