nbconvert 6.0 debería corregir --clear-output
La opción se había roto durante mucho tiempo anteriormente, informe de error con parche fusionado:https://github.com/jupyter/nbconvert/issues/822
El uso debe ser para la operación en el lugar:
jupyter nbconvert --clear-output --inplace my_notebook.ipynb
O para guardar en otro archivo llamado my_notebook_no_out.ipynb
:
jupyter nbconvert --clear-output \
--to notebook --output=my_notebook_no_out my_notebook.ipynb
Harold me llamó la atención sobre esto en los comentarios.
Antes de nbconvert 6.0:--ClearOutputPreprocessor.enabled=True
Mismo uso que --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
Probado en Jupyter 4.4.0, notebook==5.7.6.
Si creas un .gitattributes
archivo, puede ejecutar un filtro sobre ciertos archivos antes de que se agreguen a git. Esto dejará el archivo original en el disco tal como está, pero confirmará la versión "limpia".
Para que esto funcione, agréguelo a su .git/config
local o global ~/.gitconfig
:
[filter "strip-notebook-output"]
clean = "jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to=notebook --stdin --stdout --log-level=ERROR"
Luego crea un .gitattributes
archivo en su directorio con libretas, con este contenido:
*.ipynb filter=strip-notebook-output
Cómo funciona esto:
- El atributo le dice a git que ejecute el
clean
del filtro acción en cada archivo de cuaderno antes de agregarlo al índice (puesta en escena). - El filtro es nuestro amigo
nbconvert
, configurado para leer desde stdin, escribir en stdout, eliminar la salida y solo hablar cuando tenga algo importante que decir. - Cuando se extrae un archivo del índice, el filtro
smudge
se ejecuta la acción, pero esto no es operativo ya que no lo especificamos. Puede ejecutar su cuaderno aquí para volver a crear la salida (nbconvert --execute
). - Tenga en cuenta que si el filtro falla de algún modo, el archivo se almacenará sin convertir.
Mi única queja menor con este proceso es que puedo cometer .gitattributes
pero tengo que decirles a mis compañeros de trabajo que actualicen su .git/config
.
Si quieres una versión más pirateada pero mucho más rápida, prueba JQ:
clean = "jq '.cells[].outputs = [] | .cells[].execution_count = null | .'"
Utilice --ClearOutputPreprocessor.enabled=True y --clear-output
Siguiendo este comando:
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --clear-output *.ipynb