Proyek ini tidak lagi dipertahankan secara aktif.
Isi
Tidypy adalah alat yang merangkum sejumlah alat analisis statis lainnya dan memudahkan untuk mengonfigurasi, menjalankan, dan meninjau hasilnya.
*.py Anda. Selain menjalankan sejumlah alat berbeda pada kode Anda, itu juga dapat memeriksa file YAML, JSON, PO, POT, dan RST Anda.pyproject.toml yang ditentukan oleh PEP 518. Semua opsi untuk semua alat yang digunakan Tidypy dinyatakan di satu tempat, daripada mengharuskan Anda mengkonfigurasi setiap alat dengan cara yang berbeda.# noqa di sumber python Anda untuk dengan mudah mengabaikan masalah yang dilaporkan oleh alat apa pun. Saat Tidypy diinstal ( pip install tidypy ), perintah tidypy harus tersedia di lingkungan Anda:
$ tidypy --help
Penggunaan: Tidypy [opsi] Perintah [args] ...
Alat yang mengeksekusi beberapa alat analisis statis pada proyek Python
dan mengumpulkan hasilnya.
Opsi:
--Version Tampilkan versi dan keluar.
--help Tampilkan pesan ini dan keluar.
Perintah:
Periksa eksekusi alat pada file proyek.
output default-konfigasi konfigurasi default yang dapat digunakan untuk
Bootstrap file konfigurasi Anda sendiri.
Ekstensi menghasilkan daftar semua ekstensi tidypy yang tersedia.
install-vcs menginstal tidypy sebagai kait pra-komit ke yang ditentukan
VCS.
Kode daftar mengeluarkan daftar semua kode masalah yang diketahui bahwa alat
dapat melaporkan.
Purge-Config-Cache menghapus cache konfigurasi yang diambil dari
di luar konfigurasi primer.
Hapus-VCS Menghapus kait pra-komit tidypy dari yang ditentukan
VCS.
Untuk meminta Tidypy menganalisis proyek Anda, gunakan sub -perintah check :
$ tidypy check --help
Penggunaan: Periksa Tidypy [Opsi] [Path]
Mengeksekusi alat pada file proyek.
Menerima satu argumen, yang merupakan jalan menuju dasar proyek Python.
Jika tidak ditentukan, default ke direktori kerja saat ini.
Opsi:
-x, -Exclude Regex Menentukan ekspresi reguler yang cocok
Melawan jalur yang ingin Anda kecualikan
Pemeriksaan. Dapat ditentukan banyak
kali. Menimpa ekspresi yang ditentukan
di file konfigurasi.
-T, --OlT [bandit | Dlint | Eradicate | Jsonlint | Manifest | McCabe | Polint | Pycodestyle | Pydiatra | Pydocstyle | Pyflakes | Pylint | Pyroma | Rstlint | Rahasia | Vulture | Yamllint]]
Menentukan nama alat untuk digunakan selama
Pemeriksaan. Dapat ditentukan banyak
kali. Mengesampingkan file konfigurasi.
-r, --Port [konsol, CSV, khusus, json, null, pycodestyle, pylint, pylint-parsable, toml, yaml] [: nama file]
Menentukan nama laporan untuk dieksekusi
Setelah pemeriksaan. Dapat menentukan
nama file output opsional menggunakan form -r
Laporan: Nama file. Jika nama file tidak disetel,
Laporan akan ditulis di stdout. Bisa
ditentukan beberapa kali. Menimpa
file konfigurasi.
-c, --config nama file menentukan jalur ke tidypy
file konfigurasi untuk digunakan alih -alih
Konfigurasi ditemukan di proyek
pyproject.toml.
--KOWER NUM_WORKERS Jumlah pekerja yang akan digunakan secara bersamaan
Jalankan alat. Menimpa
file konfigurasi.
--Disable-Mere menonaktifkan penggabungan masalah dari berbagai
Alat saat Tidypy menganggapnya setara.
Mengesampingkan file konfigurasi.
--Progress-Disable menonaktifkan tampilan bilah kemajuan.
--Sisable-noqa menonaktifkan kemampuan untuk mengabaikan masalah menggunakan
Komentar "# noqa" dalam file python.
--konfigasi-konfigurasi-cache nonaktifkan penggunaan cache saat mengambil
Konfigurasi yang dirujuk oleh "Extends"
pilihan.
--help Tampilkan pesan ini dan keluar.
Jika Anda perlu menghasilkan file konfigurasi kerangka dengan opsi default, gunakan sub-perintah default-config :
$ tidypy default-config-help
Penggunaan: Tidypy Default-Config [Opsi]
Output konfigurasi default yang dapat digunakan untuk bootstrap Anda sendiri
file konfigurasi.
Opsi:
-Pyproject Output Konfigurasi sehingga dapat digunakan dalam pyproject.toml
mengajukan.
--help Tampilkan pesan ini dan keluar.
Jika Anda ingin melihat daftar kode masalah yang mungkin dapat dikembalikan, gunakan sub-perintah list-codes :
$ tidypy list-codes --help
Penggunaan: Kode Daftar Tidypy [Opsi]
Mengeluarkan daftar semua kode masalah yang diketahui yang mungkin dilaporkan alat.
Opsi:
-T, --OlT [bandit | Dlint | Eradicate | Jsonlint | Manifest | McCabe | Polint | Pycodestyle | Pydiatra | Pydocstyle | Pyflakes | Pylint | Pyroma | Rstlint | Rahasia | Vulture | Yamllint]]
Menentukan nama alat yang kodenya
harus output. Jika tidak ditentukan, default
untuk semua alat.
-f, -format [toml | json | yaml | csv]
Menentukan format di mana alat
harus output. Jika tidak ditentukan, default
ke Toml.
--help Tampilkan pesan ini dan keluar.
Jika Anda ingin menginstal atau menghapus Tidypy sebagai kait pra-komit di VC proyek Anda, gunakan sub-perintah install-vcs / remove-vcs :
$ tidypy install-vcs --help
Penggunaan: Tidypy Install-VCS [Opsi] VCS [PATH]
Instal Tidypy sebagai kait pra-komit ke dalam VC yang ditentukan.
Menerima dua argumen:
VCS: Sistem kontrol versi untuk menginstal hook ke dalam. Pilih dari:
git, hg
Jalur: Jalur ke dasar repositori untuk memasang kait ke dalam.
Jika tidak ditentukan, default ke direktori kerja saat ini.
Opsi:
-ketat apakah kait harus mencegah komitmen jika tidypy menemukan
masalah.
--help Tampilkan pesan ini dan keluar.
$ tidypy remove-vcs --help
Penggunaan: Tidypy Remove-VCS [Opsi] VCS [Path]
Menghapus kait pra-komit tidypy dari VC yang ditentukan.
Menerima dua argumen:
VCS: Sistem kontrol versi untuk menghapus kait dari. Pilih dari:
git, hg
Jalur: Jalur ke dasar repositori untuk menghapus kait dari. Jika
Tidak ditentukan, default ke direktori kerja saat ini.
Opsi:
--help Tampilkan pesan ini dan keluar.
Jika Anda ingin mengaktifkan penyelesaian bash untuk tidypy, jalankan yang berikut di cangkang Anda (atau masukkan ke dalam skrip startup bash Anda):
$ eval "$ (_ tidypy_complete = source tidypy)"
Jika Anda tidak ingin menginstal Tidypy secara lokal di sistem Anda atau di VirtualEnv Anda, Anda dapat menggunakan gambar Docker yang diterbitkan:
$ docker run --rm --tty --volume = `pwd`:/proyek tidypy/tidypy
Perintah di atas akan menjalankan tidypy check pada konten direktori saat ini. Jika Anda ingin menjalankannya di direktori yang berbeda, maka ubah `pwd` ke jalur apa pun yang Anda butuhkan (tujuannya adalah untuk memasang direktori proyek Anda ke volume wadah /project ).
Menjalankan tidypy dengan cara ini memiliki beberapa batasan, sebagian besar di sekitar fakta bahwa karena Tidypy berjalan dengan sendirinya, lingkungan Python yang terisolasi, alat-alat seperti Pylint tidak akan dapat mengintrospeksi paket yang dipasang proyek Anda secara lokal, sehingga dapat melaporkan positif palsu di sekitar "kesalahan impor", "no-name-in-module", "no-control, dll.
Jika Anda ingin menjalankan perintah selain check , lewati saja ketika Anda meminta Docker:
$ docker run --rm --tty --volume = `pwd`:/proyek tidypy/tidypy tidypy-codes
Todo
Selain mengabaikan seluruh file, alat, atau jenis masalah tertentu dari alat melalui file konfigurasi Anda, Anda juga dapat menggunakan komentar di file sumber Python Anda untuk mengabaikan masalah pada baris tertentu. Beberapa alat memiliki dukungan bawaan dan notasi sendiri untuk melakukan ini:
# pylint# nosec# noqa# noqa# pragma: whitelist secret Tidypy melampaui bendera khusus alat ini untuk mengimplementasikan # noqa pada skala global untuk file sumber Python. Ini akan mengabaikan masalah untuk baris yang memiliki komentar # noqa , terlepas dari alat apa yang mengangkat masalah. Jika Anda hanya ingin mengabaikan jenis masalah tertentu pada suatu baris, Anda dapat menggunakan sintaks seperti yang berikut:
# noqa: code1, code2
Atau, jika kode tertentu digunakan dalam beberapa alat, Anda dapat menentukan alat yang tepat dalam komentar:
# noqa: pycodestyle: code1, pylint: code2
Atau, jika Anda ingin mengabaikan masalah apa pun yang dinaikkan alat tertentu pada suatu baris, Anda dapat menentukan alatnya:
# noqa: @pycodestyle, @pylint
Anda dapat, tentu saja, mencampur dan mencocokkan ketiga notasi dalam satu komentar jika Anda perlu:
# noqa: code1, pylint: code2,@pycodestyle
Anda dapat menonaktifkan perilaku NOQA TIDYPY dengan menentukan opsi --disable-noqa pada baris perintah, atau dengan mengatur opsi noqa untuk false dalam file konfigurasi Anda. Namun, peringatan: saat ini gaya pycodestyle dan pydocstyle tidak menghormati opsi ini dan akan selalu menghormati komentar # noqa yang mereka temukan.
Di luar kotak, Tidypy mencakup dukungan untuk sejumlah alat:
Tidypy mencakup sejumlah metode berbeda untuk menyajikan dan/atau mengekspor hasil analisis suatu proyek. Di luar kotak, ini memberikan yang berikut:
filename , line , character , tool , code , message .Tidypy mencakup beberapa plugin/integrasi yang menghubungkannya ke alat lain.
--tidypy pada baris perintah saat Anda menjalankan pytest, atau memasukkannya sebagai bagian dari properti addopts di konfigurasi pytest Anda.--with-tidypy pada baris perintah saat Anda menjalankan hidung, atau mengatur properti with-tidypy menjadi 1 di setup.cfg Anda.tidypy . Untuk mengaktifkannya, Anda dapat menentukan --extend=tidypy.plugin.pbbt pada baris perintah saat Anda menjalankan PBBT, atau mengatur properti extend di setup.cfg atau pbbt.yaml ke tidypy.plugin.pbbt Anda. Antarmuka sederhana ada untuk memperluas tidypy untuk memasukkan lebih banyak alat dan reporter yang berbeda. Untuk menambahkan alat, buat kelas yang memperluas tidypy.tool, dan di setup.py Anda, nyatakan entry_point untuk tidypy.tools yang menunjuk ke kelas Anda:
entry_points = {
'tidypy.tools': [
'mycooltool = path.to.model: mycooltoolclassname',
],
}
Untuk menambahkan reporter, prosesnya hampir identik, kecuali bahwa Anda memperluas tidypy.report dan menyatakan entry_point untuk tidypy.reports .
Ya, itu terjadi. Filosofi yang saya pilih untuk diikuti dengan alat ini adalah bahwa saya tidak ingin menyembunyikan apa pun dari saya. Saya ingin perilaku defaultnya melaksanakan setiap alat di suite menggunakan pengaturan yang paling menjengkelkan. Kemudian, ketika saya dapat melihat ruang lingkup kerusakan penuh, saya kemudian dapat memutuskan untuk menonaktifkan alat atau masalah tertentu melalui konfigurasi tingkat proyek. Saya pikir jika seseorang meluangkan waktu untuk menerapkan cek untuk masalah tertentu, mereka harus berpikir itu memiliki nilai. Jika perkakas saya menyembunyikannya dari saya secara default, maka saya tidak akan bisa mendapatkan manfaat apa pun darinya.
Secara umum, saya tidak merekomendasikan mulai menggunakan linter atau jenis analisis statis lainnya ketika Anda berpikir Anda "selesai". Anda harus memasukkannya ke dalam alur kerja tepat di awal proyek - seperti yang Anda lakukan (atau seharusnya) tes unit Anda. Dengan begitu Anda menemukan hal -hal sejak dini dan belajar dari mereka (atau menonaktifkannya). Ini jauh lebih menakutkan tugas untuk dihadapi ketika Anda mengatasinya secara bertahap.
Kontribusi sangat disambut. Terutama jika mereka perbaikan bug! Untuk meretas kode ini, cukup klon, lalu jalankan make setup . Ini akan membuat VirtualEnv dengan semua alat yang Anda butuhkan. Makefile juga memiliki target test untuk menjalankan pytest suite, dan target lint untuk menjalankan tidypy pada dirinya sendiri.
Tidypy dirilis di bawah ketentuan lisensi MIT.