nbconvert 6.0 sollte --clear-output
beheben
Die Option war zuvor lange Zeit defekt, Fehlerbericht mit integriertem Patch:https://github.com/jupyter/nbconvert/issues/822
Die Verwendung sollte für den In-Place-Betrieb erfolgen:
jupyter nbconvert --clear-output --inplace my_notebook.ipynb
Oder zum Speichern in einer anderen Datei namens my_notebook_no_out.ipynb
:
jupyter nbconvert --clear-output \
--to notebook --output=my_notebook_no_out my_notebook.ipynb
Harold hat mich in den Kommentaren darauf aufmerksam gemacht.
Vor nbconvert 6.0:--ClearOutputPreprocessor.enabled=True
Gleiche Verwendung wie --clear-output
:
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace my_notebook.ipynb
jupyter nbconvert --ClearOutputPreprocessor.enabled=True \
--to notebook --output=my_notebook_no_out my_notebook.ipynb
Getestet in Jupyter 4.4.0, notebook==5.7.6.
Wenn Sie eine .gitattributes
erstellen -Datei können Sie bestimmte Dateien filtern, bevor sie zu git hinzugefügt werden. Dadurch wird die Originaldatei unverändert auf der Festplatte belassen, aber die "gereinigte" Version übertragen.
Damit dies funktioniert, fügen Sie dies zu Ihrem lokalen .git/config
hinzu oder global ~/.gitconfig
:
[filter "strip-notebook-output"]
clean = "jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to=notebook --stdin --stdout --log-level=ERROR"
Erstellen Sie dann eine .gitattributes
Datei in Ihrem Verzeichnis mit Notizbüchern, mit diesem Inhalt:
*.ipynb filter=strip-notebook-output
Wie das funktioniert:
- Das Attribut weist Git an, den
clean
des Filters auszuführen Aktion für jede Notebook-Datei, bevor sie zum Index hinzugefügt wird (Staging). - Der Filter ist unser Freund
nbconvert
, so eingerichtet, dass es von stdin liest, in stdout schreibt, die Ausgabe entfernt und nur spricht, wenn es etwas Wichtiges zu sagen hat. - Wenn eine Datei aus dem Index extrahiert wird, ist der
smudge
des Filters Aktion wird ausgeführt, aber dies ist ein No-Op, da wir es nicht angegeben haben. Sie könnten Ihr Notebook hier ausführen, um die Ausgabe neu zu erstellen (nbconvert --execute
). - Beachten Sie, dass die Datei unkonvertiert bereitgestellt wird, wenn der Filter irgendwie fehlschlägt.
Mein einziger kleiner Kritikpunkt bei diesem Prozess ist, dass ich .gitattributes
schreiben kann aber ich muss meinen Kollegen sagen, dass sie ihre .git/config
aktualisieren sollen .
Wenn Sie eine hackigere, aber viel schnellere Version wollen, versuchen Sie es mit JQ:
clean = "jq '.cells[].outputs = [] | .cells[].execution_count = null | .'"
Verwenden Sie --ClearOutputPreprocessor.enabled=True und --clear-output
Folgen Sie diesem Befehl:
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --clear-output *.ipynb