/ / Como posso salvar um Notebook Jupyter (notebook iPython) programaticamente? - ipython, jupyter-notebook

Como posso salvar um Notebook Jupyter (notebook iPython) programaticamente? - ipython, jupyter-notebook

Eu gostaria de salvar um bloco de notas (como clicar no ícone "disco" na barra de ferramentas) através de um bloco de código. Razão: Eu gostaria de usar nbconvert através de um %%bash magia para salvar HTML e slide, mas que converte o que está no disco, não o que está rodando.

Eu não estou olhando para fazer isso toda vez que eu salvar (porque vejo algumas configurações que podem ser configuradas), mas apenas seletivamente para alguns dos meus notebooks. Eu estou olhando para ser capaz de "Executar tudo" e ter as últimas células criam os arquivos adicionais refletindo os novos dados na tela no momento.

Eu tentei %save e %notebook magics, mas nem tanto o que eu estou procurando (o melhor que posso dizer).

Há alguma maneira de fazer isso?

Respostas:

2 para resposta № 1

Uma maneira hacky de fazer isso é usar o %%javascript magia de caderno para executar o comando

require(["base/js/namespace"],function(Jupyter) {
Jupyter.notebook.save_checkpoint();
});

Isso acessa a instância global do bloco de anotações (quando na página do bloco de anotações este é o bloco de anotações atual) e dispara manualmente um salvamento e um ponto de verificação.


2 para resposta № 2

Aqui está uma versão reutilizável da resposta @ louise-davies na forma de uma função python;

from IPython.display import Javascript

script = """
require(["base/js/namespace"],function(Jupyter) {
Jupyter.notebook.save_checkpoint();
});
"""

def notebook_save():
Javascript(script)
print("This notebook has been saved")