"Firehose" adalah paket Python yang dimaksudkan untuk mengelola hasil dari alat analisis kode (misalnya peringatan kompiler, analisis statis, linter, dll).
Saat ini menyediakan parser untuk output GCC, Clang-Analyzer, CPPCHECK, dan FindBugs. Parser ini mengubah hasil menjadi model data umum objek Python, dengan metode untuk roundtrips lossless melalui format XML yang disediakan. Ada juga yang setara dengan JSON.
Firehose adalah perangkat lunak gratis, dilisensikan di bawah LGPLV2.1 atau (di opsi Anda) versi selanjutnya.
Dibutuhkan Python 2.7 atau 3.2 dan seterusnya, dan telah berhasil diuji dengan PYPY.
Saat ini berkualitas alfa.
Format API dan serialisasi belum diatur dalam batu (dan kami ingin mendengar umpan balik sebelum kami mengunci lebih banyak).
Motivasi: http://lists.fedoraproject.org/pipermail/devel/2012-december/175232.html
Saya ingin menghirup hasil dari analisis kode statis ke dalam database, yang berarti memaksa semua hasil menjadi beberapa format pertukaran umum, dengan nama kode "firehose" (yang juga bisa menjadi nama database).
Bersama dengan API Python sederhana untuk bekerja dengan format sebagai kumpulan objek Python (membuat, menulis ke XML, dibaca dari XML, Modifikasi, dll)
Awalnya saya mempertimbangkan untuk menggunakan JSON, tetapi pergi dengan XML karena jika beberapa alat akan memancarkan ini, ada baiknya dapat memvalidasi hal-hal terhadap skema (lihat firehose.rng, skema santai-ng).
Referensi ke file sumber dalam format dapat menyertakan hash file sumber itu sendiri (misalnya SHA-1) sehingga Anda dapat secara unik mengidentifikasi file sumber mana yang Anda bicarakan.
Format ini akan dihiput ke dalam DB untuk Web UI, dan dapat melakukan hal -hal lain untuk itu tanpa memerlukan server: misalnya:
- Konversikan ke bentuk tekstual dari kesalahan kompilasi GCC, sehingga Emac dll dapat menguraikannya dan membawa Anda ke sumbernya
- diubah menjadi laporan HTML sederhana secara lokal di workstation Anda
Proyek Menggunakan Firehose:
- Analisis mock-dengan-analisis dapat membangun kembali RPM sumber, menangkap hasil dari 4 alat analisis kode yang berbeda dalam format Firehose (bersama dengan semua file sumber yang disebutkan dalam laporan apa pun).
- Cabang cpychecker "firehose" secara asli dapat memancarkan laporan XML firehose
- https://github.com/paultag/storz/blob/master/wrappers/storz-lintian