papermill ist ein Tool zum Parametrisieren, Ausführen und Analysieren von Jupyter Notebooks.
Mit Papermill können Sie:
Dies eröffnet neue Möglichkeiten für die Nutzung von Notebooks. Zum Beispiel:
Papermill verfolgt bei der Notebook-Parametrierung und -Ausführung einen eigensinnigen Ansatz, der auf unseren Erfahrungen mit Notebooks im großen Maßstab in Datenpipelines basiert.
Von der Befehlszeile:
pip install papermill
Für alle optionalen io-Abhängigkeiten können Sie einzelne Bundles wie s3
oder azure
angeben – oder all
verwenden. Um Schwarz zum Formatieren von Parametern zu verwenden, können Sie als Extra ['black'] hinzufügen.
pip install papermill[all]
Diese Bibliothek unterstützt derzeit Python 3.8+-Versionen. Da kleinere Python-Versionen offiziell von der Python-Organisation eingestellt werden, wird auch Papermill in Zukunft die Unterstützung einstellen.
Um Ihr Notebook zu parametrisieren, geben Sie eine Zelle mit den Tag parameters
an.
Papermill sucht nach der parameters
und behandelt diese Zelle als Standard für die zur Ausführungszeit übergebenen Parameter. Papermill fügt eine neue Zelle mit dem Tag injected-parameters
mit Eingabeparametern hinzu, um die Werte in parameters
zu überschreiben. Wenn keine Zelle mit parameters
gekennzeichnet ist, wird die eingefügte Zelle oben im Notizbuch eingefügt.
Wenn Sie Notebooks außerdem über Papermill erneut ausführen, wird die Zelle mit den injected-parameters
aus dem vorherigen Lauf wiederverwendet. In diesem Fall ersetzt Papermill die alte Zelle mit den injected-parameters
durch die Eingaben des neuen Laufs.
Es gibt zwei Möglichkeiten, das Notebook mit Parametern auszuführen: (1) über die Python-API und (2) über die Befehlszeilenschnittstelle.
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
Hier ist ein Beispiel für die Ausführung und Ausgabe eines lokalen Notebooks an ein Amazon S3-Konto:
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
HINWEIS: Wenn Sie mehrere AWS-Konten verwenden und Ihre AWS-Anmeldeinformationen ordnungsgemäß konfiguriert haben, können Sie angeben, welches Konto verwendet werden soll, indem Sie die Umgebungsvariable AWS_PROFILE
in der Befehlszeile festlegen. Zum Beispiel:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
Im obigen Beispiel werden zwei Parameter festgelegt: alpha
und l1_ratio
mit -p
( --parameters
funktioniert auch). Parameterwerte, die wie boolesche Werte oder Zahlen aussehen, werden als solche interpretiert. Hier sind die verschiedenen Möglichkeiten, wie Benutzer Parameter festlegen können:
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
Mit -r
oder --parameters_raw
können Benutzer Parameter einzeln festlegen. Im Gegensatz zu -p
bleibt der Parameter jedoch eine Zeichenfolge, auch wenn er als Zahl oder boolescher Wert interpretiert werden kann.
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
Mit -f
oder --parameters_file
können Benutzer eine YAML-Datei bereitstellen, aus der Parameterwerte gelesen werden sollen.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
Mit -y
oder --parameters_yaml
können Benutzer direkt eine YAML-Zeichenfolge mit Parameterwerten bereitstellen.
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
Mit -b
oder --parameters_base64
können Benutzer eine Base64-codierte YAML-Zeichenfolge bereitstellen, die Parameterwerte enthält.
Wenn Sie YAML verwenden, um Argumente über -y
, -b
oder -f
zu übergeben, können Parameterwerte Arrays oder Wörterbücher sein:
$ 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 unterstützt die folgenden Namenshandler für Eingabe- und Ausgabepfade während der Ausführung:
Lokales Dateisystem: local
HTTP-, HTTPS-Protokoll: http://, https://
Amazon Web Services: AWS S3 s3://
Azure: Azure DataLake Store, Azure Blob Store adl://, abs://
Google Cloud: Google Cloud Storage gs://
Lesen Sie CONTRIBUTING.md, um Richtlinien zum Einrichten einer lokalen Entwicklungsumgebung und zum Vornehmen von Codeänderungen an Papermill zu erhalten.
Entwicklungsrichtlinien finden Sie in der Datei DEVELOPMENT_GUIDE.md. Hier erfahren Sie, wie Sie bestimmte Ergänzungen zur Codebasis vornehmen können.
Wir hosten die Papermill-Dokumentation auf ReadTheDocs.