papermill是一個用於參數化、執行和分析 Jupyter Notebooks 的工具。
造紙廠讓您:
這為筆記型電腦的使用方式開啟了新的機會。例如:
Papermill 根據我們在資料管道中大規模使用筆記本的經驗,對筆記本參數化和執行採取了固執己見的方法。
從命令列:
pip install papermill
對於所有可選的 io 依賴項,您可以指定單一套件,例如s3
或azure
- 或使用all
。要使用黑色來格式化參數,您可以新增額外的要求['black']。
pip install papermill[all]
該庫目前支援 Python 3.8+ 版本。隨著 Python 組織 Papermill 正式取消 Python 次要版本,未來也將同樣放棄支援。
若要參數化您的筆記本,請指定帶有標籤parameters
的儲存格。
Papermill 會尋找parameters
儲存格並將該儲存格視為執行時傳入的參數的預設值。 Papermill 將會新增一個injected-parameters
標記的新儲存格,以便覆寫parameters
中的值。如果沒有用parameters
標記單元格,則注入的單元格將插入到筆記本的頂部。
此外,如果您透過造紙廠重新運行筆記本,它將重複使用上次運行中injected-parameters
單元格。在這種情況下,Papermill 將用新運行的輸入取代舊的injected-parameters
單元。
使用參數執行筆記本的兩種方法是:(1) 透過 Python API 和 (2) 透過命令列介面。
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
以下是執行本機筆記本並將其輸出至 Amazon S3 帳戶的範例:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
注意:如果您使用多個 AWS 帳戶,並且已正確配置 AWS 憑證,則可以透過在命令列設定AWS_PROFILE
環境變數來指定要使用的帳戶。例如:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
在上面的範例中,使用-p
設定了兩個參數: alpha
和l1_ratio
( --parameters
也有效)。看起來像布林值或數字的參數值將被如此解釋。以下是使用者設定參數的不同方式:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
使用-r
或--parameters_raw
,使用者可以一一設定參數。但是,與-p
不同的是,該參數將保留為字串,即使它可能被解釋為數字或布林值。
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
使用-f
或--parameters_file
,使用者可以提供應從中讀取參數值的 YAML 檔案。
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
使用-y
或--parameters_yaml
,使用者可以直接提供包含參數值的 YAML 字串。
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
使用-b
或--parameters_base64
,使用者可以提供包含參數值的 Base64 編碼的 YAML 字串。
使用 YAML 傳遞參數時,透過-y
、 -b
或-f
,參數值可以是陣列或字典:
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
x:
- 0.0
- 1.0
- 2.0
- 3.0
linear_function:
slope: 3.0
intercept: 1.0"
Papermill 在執行期間支援以下輸入和輸出路徑的名稱處理程序:
本機檔案系統: local
HTTP、HTTPS 協定: http://, https://
亞馬遜網路服務:AWS S3 s3://
Azure:Azure DataLake 儲存體、Azure Blob 儲存體adl://, abs://
Google雲端:Google雲端儲存gs://
請閱讀 CONTRIBUTING.md,以了解如何設定本機開發環境以及如何將程式碼變更回 Papermill 的指南。
有關開發指南,請查看 DEVELOPMENT_GUIDE.md 檔案。這應該會告訴您如何對程式碼庫進行特定的新增。
我們在 ReadTheDocs 上託管 Papermill 文件。