Как сохранить записную книжку Beaker как обычный python/r/...?
Я только что обнаружил стакан для ноутбука. Я люблю эту концепцию и отчаянно хочу использовать ее для работы. Для этого я должен быть уверен, что могу поделиться своим кодом в других форматах.
Вопрос
Скажем, я пишу чистый Python в блокноте Beaker:
- Могу ли я сохранить его как файл.py, как могу в iPython Notebook/Jupyter?
- Могу ли я сделать то же самое, если бы написал ноутбук для чистого R Beaker?
- Если я написал смешанную (полиглотную) записную книжку с Python и R, могу ли я сохранить ее, например, на Python, с кодом R, но закомментированным?
- Допустим, ничего из вышеперечисленного невозможно. Рассматривая файл записной книжки 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 с "волшебными" вещами (черт возьми, как люди из ноутбуков могут воспринимать это всерьез с таким именем, как "волшебство").
Это может быть значительно улучшено, но это дает вам основы того, что вы просили.