Поиск ячеек уценки ноутбука Jupyter из командной строки - PullRequest
0 голосов
/ 09 мая 2018

Я использую ag для поиска в моих заметках. Мои заметки записаны в файлах Markdown и ячейках Markdown, которые содержатся в блокнотах Jupyter.

Я могу удобно искать файлы Markdown с помощью ag --markdown .... Было бы очень удобно, если бы что-то подобное можно было сделать с файлами блокнота Jupyter. Но для этого необходимо, чтобы ag понимал формат этих ноутбуков.

Мой вопрос: есть ли способ поиска только ячеек Markdown для заданной строки в файле блокнота Jupyter? Любое сопоставление с образцом, используемое в решении, приемлемо для меня (ag, grep, ack, ...).

стр. С. Записные книжки составлены в формате JSON. Вот пример:

$ head notebook.ipynb
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "THIS IS A MARKDOWN STRING"
   ]
  },
  {

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я хотел бы использовать jq, чтобы отфильтровать все ячейки уценки ноутбука Python. Например, если вы просто хотите выплюнуть весь источник уценки, вы можете использовать следующее:

$< notebook.ipynb | jq '.cells[]|select(.cell_type == "markdown")|.source[]'

jq быстрый и используется для гораздо более сложных решений при сохранении ноутбуков ipython в git, например: Использование ноутбуков IPython под управлением версией

0 голосов
/ 05 июня 2018

Я не знаю, может ли ag быть связан с фильтром, но получить разметку из файла ноутбука, следующий код Python будет достаточно

import nbformat
from sys import argv
nb = nbformat.read(argv[1], nbformat.NO_CONVERT)
for cell in nb.cells:
    if cell.cell_type == 'markdown' : print(cell.source)
...