Как сохранить записную книжку Beaker как обычный python/r/...?

Я только что обнаружил стакан для ноутбука. Я люблю эту концепцию и отчаянно хочу использовать ее для работы. Для этого я должен быть уверен, что могу поделиться своим кодом в других форматах.

Вопрос

Скажем, я пишу чистый Python в блокноте Beaker:

  1. Могу ли я сохранить его как файл.py, как могу в iPython Notebook/Jupyter?
  2. Могу ли я сделать то же самое, если бы написал ноутбук для чистого R Beaker?
  3. Если я написал смешанную (полиглотную) записную книжку с Python и R, могу ли я сохранить ее, например, на Python, с кодом R, но закомментированным?
  4. Допустим, ничего из вышеперечисленного невозможно. Рассматривая файл записной книжки Beaker как текстовый файл, он кажется сохраненным в формате JSON. Я даже могу найти ячейки, которые соответствуют, например, Python, R. Не похоже, что было бы слишком сложно написать скрипт на Python, который выполняет 1-3 выше. Я что-то пропустил?

Спасибо!

PS - нет бирки для ноутбука Beaker!? плохая примета...

1 ответ

Это действительно не так сложно воспроизвести основы экспорта:

#' Save a beaker notebook cell type to a file
#' 
#' @param notebook path to the notebook file
#' @param output path to the output file (NOTE: this file will be overwritten)
#' @param cell_type which cells to export
save_bkr <- function(notebook="notebook.bkr", 
                     output="saved.py", 
                     cell_type="IPython") {

  nb <- jsonlite::fromJSON(notebook)

  tmp <- subset(nb$cells, evaluator == cell_type)$input

  if (length(tmp) != 0) {
    unlink(output)
    purrr::walk(tidyr::unnest(tmp, body), cat, file=output, append=TRUE, sep="\n")
  } else {
    message("No cells found matching cell type")
  }

}

Я понятия не имею, что делает Jupyter с "волшебными" вещами (черт возьми, как люди из ноутбуков могут воспринимать это всерьез с таким именем, как "волшебство").

Это может быть значительно улучшено, но это дает вам основы того, что вы просили.

Другие вопросы по тегам