Sangat bagus untuk modul Python memiliki sebuah docstring, menjelaskan apa yang modul itu lakukan, apa yang disediakannya, contoh bagaimana menggunakan kelas. Ini berbeda dengan komentar yang sering Anda lihat di awal file yang memberikan informasi hak cipta dan lisensi, yang tidak boleh dimasukkan IMO di docstring (beberapa bahkan berpendapat bahwa komentar itu harus hilang sama sekali, lihat mis. Http: // hackerboss. com / get-rid-of-templates / )
Dengan pylint 2.4 dan yang lebih baru, Anda dapat membedakan berbagai macam pesan missing-docstring
dengan menggunakan tiga sub-pesan berikut:
C0114
( missing-module-docstring
)
C0115
( missing-class-docstring
)
C0116
( missing-function-docstring
)
Jadi .pylintrc
file berikut harus berfungsi:
[MASTER]
disable=
C0114,
Untuk versi Pylint sebelumnya, ia tidak memiliki kode terpisah untuk berbagai tempat di mana docstrings dapat muncul, jadi yang dapat Anda lakukan hanyalah menonaktifkan C0111. Masalahnya adalah jika Anda menonaktifkan ini di modul scope, maka itu akan dinonaktifkan di mana saja dalam modul (yaitu Anda tidak akan mendapatkan baris C apapun karena fungsi / kelas / metode docstring hilang. Yang bisa dibilang tidak bagus.
Jadi yang saya sarankan adalah menambahkan docstring kecil yang hilang itu, mengatakan sesuatu seperti:
"""
high level support for doing this and that.
"""
Segera, Anda akan menemukan hal-hal yang berguna untuk dimasukkan ke sana, seperti memberikan contoh bagaimana menggunakan berbagai kelas / fungsi modul yang tidak harus dimiliki oleh masing-masing docstring kelas / fungsi (seperti bagaimana ini berinteraksi, atau sesuatu seperti panduan memulai cepat).
$ cat my_module/test/__init__.py
"Hey, PyLint? SHUT UP"
Sudah terlambat, tapi tetap saja ini berguna. Jadi berbagi. Temukan ini di sini .
Anda dapat menambahkan tanda "--errors-only" pada pylint untuk menonaktifkan peringatan.
Untuk melakukan ini, buka pengaturan. Edit baris berikut:
"python.linting.pylintArgs": []
Sebagai
"python.linting.pylintArgs": ["--errors-only"]
Dan Anda siap berangkat!
sumber
"python.linting.pylintArgs": ["--disable=C0111"],
mungkin lebih karena itu hanya menenangkan peringatan docstring. Namun pengaturan membahas pertanyaan OP tentang bagaimana menonaktifkan peringatan ini hanya pada tingkat modul.Saya pikir perbaikannya relatif mudah tanpa menonaktifkan fitur ini.
def kos_root(): """Return the pathname of the KOS root directory.""" global _kos_root if _kos_root: return _kos_root
Yang perlu Anda lakukan adalah menambahkan string tanda kutip ganda rangkap tiga di setiap fungsi.
sumber
Saya datang mencari jawaban karena, seperti yang dikatakan @cerin, dalam proyek Django adalah merepotkan dan mubazir untuk menambahkan modul docstrings ke setiap berkas yang secara otomatis dihasilkan oleh django ketika membuat aplikasi baru.
Jadi, sebagai solusi untuk fakta bahwa pylint tidak memungkinkan Anda menentukan perbedaan dalam jenis docstring, Anda dapat melakukan ini:
pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module
Anda harus mengupdate template-msg sehingga ketika Anda grep Anda masih tahu nama file-nya. Ini mengembalikan semua jenis docstring yang hilang lainnya tidak termasuk modul.
Kemudian Anda dapat memperbaiki semua kesalahan itu, dan setelah itu jalankan saja:
sumber
Tidak. Pylint saat ini tidak mengizinkan Anda membedakan antara peringatan doc-string.
Namun, Anda dapat menggunakan flake8 untuk semua pemeriksaan kode python bersama dengan ekstensi doc-string untuk mengabaikan peringatan ini.
Instal ekstensi doc-string dengan pip (Secara internal, Ini menggunakan pydocstyle ).
Anda kemudian dapat menggunakan
--ignore D100
sakelar. Sebagai contohflake8 file.py --ignore D100
sumber
Dengan pylint 2.4 dan yang lebih baru, Anda dapat membedakan berbagai macam pesan
missing-docstring
dengan menggunakan tiga sub-pesan berikut:C0114
(missing-module-docstring
)C0115
(missing-class-docstring
)C0116
(missing-function-docstring
)Jadi
.pylintrc
file berikut harus berfungsi:[MASTER] disable= C0114, # missing-module-docstring
sumber
Letakkan saja baris berikut di awal file apa pun yang ingin Anda nonaktifkan peringatan ini.
# pylint: disable=missing-module-docstring # pylint: disable=missing-class-docstring # pylint: disable=missing-function-docstring
sumber
missing-docstring
(berfungsi untuk versi sebelum 2.4.0).Edit "C: \ Users \ Your User \ AppData \ Roaming \ Code \ User \ settings.json" dan tambahkan
python.linting.pylintArgs
baris ini di akhir seperti yang ditunjukkan di bawah ini:{ "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" ], }
sumber
(1) CTRL + SHIFT + P (2) Kemudian ketik dan klik> preferensi: konfigurasikan pengaturan khusus bahasa (3) lalu ketik python setelah itu melewati kode
{ "python.linting.pylintArgs": [ "--load-plugins=pylint_django","--errors-only" ], }
sumber
Buka "settings.json" dan nonaktifkan python
pydocstyle
"python.linting.pydocstyleEnabled": false
sumber
Dalam kasus saya, dengan pylint 2.6.0, pesan docstring yang hilang tidak akan hilang, bahkan setelah dinonaktifkan secara eksplisit
missing-module-docstring
,missing-class-docstring
danmissing-function-docstring
di.pylintrc
file saya . Akhirnya, konfigurasi berikut berhasil untuk saya:Rupanya, pylint 2.6.0 masih memvalidasi docstrings kecuali kedua pemeriksaan tersebut dinonaktifkan.
sumber