Ячейки только для чтения в записной книжке ipython

Есть ли способ пометить ячейку в ipython-ноутбуке только для чтения, используя формат json в файле ipynb? (Например, атрибут ячейки "readonly":false или некоторые такие.) Если нет, существует ли способ jquery hack для обнаружения события двойного щелчка в ячейке?

Ответ 1

Да, выполните следующие действия

  • Выбрать представление на панели меню
  • Панель инструментов Point to Cell и выберите "Редактировать метаданные"
  • Кнопка "Редактировать метаданные" появится в правом верхнем углу ячейки.
  • Нажмите на эту кнопку и отредактируйте всплывающее окно json. Установите для редактируемого ключа значение true для значения false, чтобы получить желаемый эффект.

Ответ 3

Другой альтернативой, для которой не требуется какой-либо инструмент стороннего производителя, является редактирование метаданных записной книжки, как описано здесь.

Чтобы редактировать метаданные ячейки, у вас есть два варианта. Для меня работало открыть блокнот в редакторе и найти ячейку, которую я хотел заблокировать. Это не очень эффективная процедура. В ответе @Richard Ackon предлагается более простой вариант:

  1. Выберите View в строке меню.
  2. Укажите на Cell Toolbar и выберите Edit Metadata.
  3. Кнопка Edit Metadata появится в верхнем правом углу ячейки.
  4. Нажмите на эту кнопку и отредактируйте всплывающий json.

Однако я не мог его использовать, так как работал с Jupyter Lab, и эти меню и опции там не появлялись.

Получив метаданные ячейки в файле (или разделе) json, просто добавьте следующие строки:

"metadata": {
    "trusted": true,
    "editable": false,
    "deletable": false
}

Сохраните и перезагрузите записную книжку в Jupyter и, tadah !, ваша ячейка не может быть изменена или удалена.

К сожалению, выходные данные все еще можно очистить, преднамеренно выбрав эту опцию в строке меню (Edit> Clear Ouputs). Конечно, это может произойти, только если вы хотите очистить выходные данные, а не просто обновить их, запустив ячейку.