
Headergen adalah pendekatan berbasis alat untuk meningkatkan pemahaman dan navigasi buku catatan Jupyter berbasis Python yang tidak berdokumen dengan secara otomatis membuat struktur naratif di buku catatan.
Ilmuwan data membangun notebook solusi berbasis ML dengan terlebih dahulu menyiapkan data, kemudian mengekstraksi fitur-fitur utama, dan kemudian membuat dan melatih model. Headergen memanfaatkan struktur naratif implisit dari buku catatan ML untuk menambahkan header struktural sebagai anotasi ke notebook.

pip install headergen
Penyisipan Header Markdown Otomatis: Melalui taksonomi untuk operasi pembelajaran mesin, headergen anotasi sel kode dengan header markdown yang relevan.
Taksonomi Panggilan Fungsi: Secara metodis mengklasifikasikan panggilan fungsi berdasarkan taksonomi operasi pembelajaran mesin.
Analisis Grafik Panggilan Lanjutan: Meningkatkan Kerangka PYCG dengan sensitivitas aliran dan resolusi tipe pengembalian pustaka eksternal.
Presisi di pustaka eksternal: Kemampuan untuk secara akurat menyelesaikan jenis fungsi pengembalian dari pustaka eksternal menggunakan prypestubs.
Pencocokan Pola Sintaks: Menggunakan data jenis untuk pencocokan pola.
generate Perintah:Menghasilkan notebook beranotasi headergen di direktori saat ini. Perhatikan bahwa cache akan dibuat saat pertama kali headergen dijalankan.
headergen generate -i /path/to/input.ipynbHasilkan file metadata JSON yang mencakup berbagai informasi analisis, gunakan flag --json_output atau -j.
headergen generate -i /path/to/input.ipynb -o /path/to/output/ -jtypes Perintah:Jalankan Inferensi Jenis pada File dan Mengambil Informasi Jenis.
headergen types -i /path/to/input.ipynbHasilkan file JSON dengan informasi jenis, gunakan flag --json_output atau -j.
headergen types -i /path/to/input.ipynb -o /path/to/output/ -jserver :Memulai server sangat mudah:
headergen server
Ini akan memulai server uvicorn mendengarkan pada host 0.0.0.0 dan port 54068.
Titik akhir ini mengembalikan analisis notebook atau skrip python yang ditentukan sebagai respons JSON yang berisi data analisis seperti cell_callsites dan block_mapping.
Contoh Menggunakan Curl:
curl "http://0.0.0.0:54068/get_analysis_notebook?file_path=/absolute/path/to/your/file.ipynb"
Titik akhir ini mengembalikan informasi dari notebook atau skrip python yang ditentukan sebagai respons JSON.
Contoh Menggunakan Curl:
curl "http://0.0.0.0:54068/get_types?file_path=/absolute/path/to/your/file.ipynb"
Titik akhir ini mengembalikan buku catatan beranotasi berdasarkan analisis. Responsnya akan menjadi unduhan file.
Contoh Menggunakan Curl:
curl "http://0.0.0.0:54068/generate_annotated_notebook?file_path=/absolute/path/to/your/file.ipynb" --output annotated_file.ipynb
callsites-jupyternb-micro-benchmark : Benchmark Mikrocallsites-jupyternb-real-world-benchmark : Benchmark Dunia Nyataevaluation : Berisi anotasi header manual dan hasil studi penggunaframework_models : Panggilan fungsi ke pemetaan taksonomi MLtypestub-database : type-st untuk pustaka MLheadergen : Sumber Kode Headergenpycg_extended : kode sumber PYCG yang diperluasheadergen-extension : Plugin Notebook Jupyter untuk HGheadergen_output : folder di mana notebook yang dihasilkan dari wadah Docker disimpan Dapatkan file sumber
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
Linux
docker build -t headergen .
docker run -v {$PWD}/headergen_output:/headergen_output -it headergen bash
Windows
docker build -t headergen .
docker run -v "%cd%"/headergen_output:/headergen_output -it headergen bash
Output yang dihasilkan dari perintah berikut, seperti buku catatan, laporan, callsites, header, dll, disimpan di folder lokal headergen_output setelah perintah berikut dilakukan.
Benchmark mikro (menghasilkan file CSV dengan hasil)
make ROOT_PATH=/app/HeaderGen microbench
Benchmark Dunia Nyata (menghasilkan buku catatan beranotasi dan file CSV yang mereproduksi Tabel 2)
make ROOT_PATH=/app/HeaderGen realworldbench
Kedua tolok ukur
make ROOT_PATH=/app/HeaderGen all
Output yang dihasilkan bersih
make clean
Dapatkan file sumber
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
Hapus cache jika ada
rm framework_models/models_cache.pickle
rm pycg_extended/machinery/pytd_cache.pickle
Pengaturan venv dan dependensi dengan skrip setup.sh
./setup.sh -i
Benchmark mikro (menghasilkan file CSV dengan hasil)
make ROOT_PATH=<path to repo root> microbench
Benchmark Dunia Nyata (menghasilkan buku catatan beranotasi dan file CSV yang mereproduksi Tabel 2)
make ROOT_PATH=<path to repo root> realworldbench
Kedua tolok ukur
make ROOT_PATH=<path to repo root> all
Output yang dihasilkan bersih
make clean
Repo ini berisi kode untuk makalah "Meningkatkan pemahaman dan navigasi dalam buku catatan Jupyter dengan analisis statis" yang diterbitkan di Saner Conference 2023.