nbconvert 6.0 by měl opravit --clear-output
Tato možnost byla již delší dobu nefunkční, hlášení o chybě se sloučeným patchem:https://github.com/jupyter/nbconvert/issues/822
Použití by mělo být pro provoz na místě:
jupyter nbconvert --clear-output --inplace my_notebook.ipynb
Nebo uložit do jiného souboru s názvem my_notebook_no_out.ipynb
:
jupyter nbconvert --clear-output \
--to notebook --output=my_notebook_no_out my_notebook.ipynb
Na to mě upozornil Harold v komentářích.
Před nbconvert 6.0:--ClearOutputPreprocessor.enabled=True
Stejné použití jako --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
Testováno v Jupyter 4.4.0, notebook==5.7.6.
Pokud vytvoříte .gitattributes
soubor, můžete spustit filtr přes určité soubory před jejich přidáním do git. Tím zůstane původní soubor na disku tak, jak je, ale potvrdí se "vyčištěná" verze.
Aby to fungovalo, přidejte toto do místního .git/config
nebo globální ~/.gitconfig
:
[filter "strip-notebook-output"]
clean = "jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to=notebook --stdin --stdout --log-level=ERROR"
Poté vytvořte .gitattributes
soubor ve vašem adresáři s notebooky s tímto obsahem:
*.ipynb filter=strip-notebook-output
Jak to funguje:
- Atribut říká gitu, aby spustil
clean
filtru akce na každý soubor poznámkového bloku před jeho přidáním do indexu (staging). - Filtr je náš přítel
nbconvert
, nastavit čtení ze stdin, zapisovat do stdout, odstraňovat výstup a mluvit pouze tehdy, když má něco důležitého říct. - Když je soubor extrahován z indexu, filtr má hodnotu
smudge
akce je spuštěna, ale nejde o operaci, protože jsme ji nespecifikovali. Zde můžete spustit svůj notebook a znovu vytvořit výstup (nbconvert --execute
). - Všimněte si, že pokud filtr nějak selže, soubor bude zinscenován bez konverze.
Moje jediná drobná výhrada k tomuto procesu je, že mohu spáchat .gitattributes
ale musím říct svým spolupracovníkům, aby aktualizovali své .git/config
.
Pokud chcete hackerskou, ale mnohem rychlejší verzi, zkuste JQ:
clean = "jq '.cells[].outputs = [] | .cells[].execution_count = null | .'"
Použijte --ClearOutputPreprocessor.enabled=True a --clear-output
Po tomto příkazu:
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --clear-output *.ipynb