
Headergen是一種基於工具的方法,可通過在筆記本中自動創建敘事結構來增強基於Python的Jupyter筆記本電腦的理解和導航。
數據科學家通過先準備數據,然後提取關鍵功能,然後創建和訓練模型來構建基於ML的解決方案筆記本。 Headergen利用ML筆記本的隱性敘事結構來添加結構標頭作為註釋。

pip install headergen
自動化標頭插入:通過針對機器學習操作的分類法,Headergen用相關的Markdown標頭註釋了代碼單元。
功能呼叫分類法:有條不紊地根據機器學習操作分類法對函數呼叫進行分類。
高級呼叫圖分析:通過流敏性和外部庫返回型分辨率增強PYCG框架。
外部庫中的精度:使用Typestubs從外部庫中準確解決函數返回類型的能力。
語法模式匹配:採用類型數據進行模式匹配。
generate命令:在當前目錄中生成Headergen註釋的筆記本。請注意,將首次運行Headergen時,將創建緩存。
headergen generate -i /path/to/input.ipynb生成一個包含各種分析信息的JSON元數據文件,使用-json_output或-j標誌。
headergen generate -i /path/to/input.ipynb -o /path/to/output/ -jtypes命令:在文件上運行類型推理並獲取類型信息。
headergen types -i /path/to/input.ipynb生成帶有類型信息的JSON文件,使用-JSON_OUTPUT或-J標誌。
headergen types -i /path/to/input.ipynb -o /path/to/output/ -jserver命令:啟動服務器很簡單:
headergen server
這將啟動在主機0.0.0.0和端口54068上偵聽Uvicorn服務器。
此端點將指定筆記本或Python腳本的分析作為JSON響應,其中包含分析數據,例如Cell_callsites和Block_Mapping。
示例使用捲髮:
curl "http://0.0.0.0:54068/get_analysis_notebook?file_path=/absolute/path/to/your/file.ipynb"
此端點將指定筆記本或Python腳本的類型信息作為JSON響應。
示例使用捲髮:
curl "http://0.0.0.0:54068/get_types?file_path=/absolute/path/to/your/file.ipynb"
該端點根據分析返回帶註釋的筆記本。響應將是文件下載。
示例使用捲髮:
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 :微觀基準callsites-jupyternb-real-world-benchmark :現實世界基準evaluation :包含手動標題註釋和用戶研究結果framework_models :函數調用ML分類法映射typestub-database :ML庫的類型-STBheadergen :Headergen的源代碼pycg_extended :擴展PYCG的源代碼headergen-extension :HG的Jupyter筆記本插件headergen_output :存儲了從碼頭容器中生成的筆記本的文件夾。 獲取源文件
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
視窗
docker build -t headergen .
docker run -v "%cd%"/headergen_output:/headergen_output -it headergen bash
從以下命令中生成的輸出,例如註釋的筆記本,報告,呼叫,標題等,在執行以下命令後,將存儲在本地文件夾headergen_output中。
微觀基準(生成帶有結果的CSV文件)
make ROOT_PATH=/app/HeaderGen microbench
現實世界基準(生成帶註釋的筆記本和CSV文件,以復製表2)
make ROOT_PATH=/app/HeaderGen realworldbench
兩個基準
make ROOT_PATH=/app/HeaderGen all
清潔生成的輸出
make clean
獲取源文件
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
清除緩存如果存在
rm framework_models/models_cache.pickle
rm pycg_extended/machinery/pytd_cache.pickle
設置VENV和帶有設置的依賴項setup.sh腳本
./setup.sh -i
微觀基準(生成帶有結果的CSV文件)
make ROOT_PATH=<path to repo root> microbench
現實世界基準(生成帶註釋的筆記本和CSV文件,以復製表2)
make ROOT_PATH=<path to repo root> realworldbench
兩個基準
make ROOT_PATH=<path to repo root> all
清潔生成的輸出
make clean
該回購包含在2023年Saner會議上發表的“通過靜態分析增強理解和導航的代碼” 。