Saya memiliki repositori sumber besar yang dibagi menjadi beberapa proyek. Saya ingin membuat laporan tentang kesehatan kode sumber, mengidentifikasi area masalah yang perlu ditangani.
Secara khusus, saya ingin menyebutkan rutinitas dengan kompleksitas siklomatik tinggi, mengidentifikasi pengulangan, dan mungkin menjalankan beberapa analisis statis seperti serat untuk menemukan konstruksi yang mencurigakan (dan kemungkinan besar keliru).
Bagaimana saya bisa membuat laporan seperti itu?
https://flakehell.readthedocs.io/config.html
hari ini, karena model eksekusinya jauh lebih kuat dan dapat dikonfigurasi.Untuk kompleksitas siklomatik, Anda dapat menggunakan
radon
: https://github.com/rubik/radon(Gunakan
pip
untuk menginstalnya:pip install radon
)Selain itu, ia juga memiliki fitur-fitur berikut:
sumber
Untuk analisis statis ada pylint dan pychecker . Secara pribadi saya menggunakan pylint karena tampaknya lebih komprehensif daripada pychecker.
Untuk kompleksitas siklomatis Anda dapat mencoba program perl ini , atau artikel ini yang memperkenalkan program python untuk melakukan hal yang sama
sumber
Pycana bekerja seperti pesona saat Anda perlu memahami proyek baru!
Lihat cara kerjanya: http://pycana.sourceforge.net/
keluaran:
sumber
Berkat Pydev , Anda dapat mengintegrasikan pylint di Eclipse IDE dengan sangat mudah dan mendapatkan laporan kode setiap kali Anda menyimpan file yang dimodifikasi.
sumber
Gunakan flake8 , yang menyediakan analisis kompleksitas pep8, pyflakes, dan cyclomatic dalam satu alat
sumber
Ada alat bernama CloneDigger yang membantu Anda menemukan cuplikan kode serupa.
sumber
Untuk memeriksa kompleksitas siklomatik, tentu saja ada
mccabe
paketnya.Instalasi:
Pemakaian:
Perhatikan ambang 6 di atas. Berdasarkan jawaban ini , skor> 5 mungkin harus disederhanakan.
Output sampel dengan
--min=3
:Secara opsional juga dapat digunakan melalui pylint-mccabe atau pytest-mccabe , dll.
sumber