Создание расширения Jupyter Notebook

В этом руководстве показано, как создать расширение Jupyter Notebook в Azure Data Studio. Расширение поставляет пример Jupyter Notebook, который можно открыть и запустить в Azure Data Studio.

В этой статье раскрываются следующие темы:

  • Создание проекта расширения.
  • Установка генератора расширений.
  • Создание расширения записных книжек.
  • Запуск расширения.
  • Упакуйте расширение.
  • Опубликуйте расширение в Marketplace.

Используемые API

  • azdata.nb.showNotebookDocument

Варианты использования расширения

Есть несколько причин, чтобы создать расширение записных книжек:

  • совместное использование интерактивной документации;
  • сохранение этой записной книжки и постоянный доступ к ней;
  • предоставление пользователям информации о проблемах написания кода;
  • управление версиями и отслеживание обновлений записных книжек.

Необходимые компоненты

Средство Azure Data Studio основано на той же платформе, что и Visual Studio Code, поэтому расширения для Azure Data Studio создаются с помощью Visual Studio Code. Чтобы приступить к работе, вам потребуются следующие компоненты.

  • Установленный Node.js, доступный в вашей переменной $PATH. Node.js включает в себя npm, диспетчер пакетов Node.js, который будет использоваться для установки генератора расширений.
  • Visual Studio Code для отладки расширения.
  • Убедитесь, что azuredatastudio указан в вашем пути. Для Windows выберите параметр Добавить в PATH в setup.exe. Для Mac или Linux выполните команду Install 'azuredatastudio' command in PATH из палитры команд в Azure Data Studio.

Установка генератора расширений

Чтобы упростить процесс создания расширений, мы создали генератор расширений с помощью Yeoman. Для его установки выполните следующую команду в командной строке:

npm install -g yo generator-azuredatastudio

Создание расширения

Для создания расширения сделайте следующее.

  1. Запустите генератор расширений с помощью следующей команды:

    yo azuredatastudio

  2. Выберите Новые записные книжки (отдельные) в списке типов расширений.

    Notebook extension generator

  3. Выполните инструкции, чтобы ввести имя расширения. Мы будем использовать имя Test Notebook. Затем введите имя издателя. Здесь мы используем имя Microsoft. В последнюю очередь добавьте описание.

Теперь здесь есть несколько ветвей. Можно добавить уже созданные записные книжки Jupyter Notebook или использовать образцы записных книжек, предоставленные в генераторе.

В этом учебнике мы будем использовать пример записной книжки Python:

Select python sample

Если у вас есть записные книжки, которые вы хотите отправить, укажите это в ответе. Укажите абсолютный путь к файлу, где находятся все записные книжки или файлы Markdown.

При выполнении предыдущих шагов создается папка с примером записной книжки. Откройте ее в Visual Studio Code, чтобы предоставить расширение записных книжек.

Изучение расширения

В настоящее время ваш проект должен выглядеть следующим образом:

extension file structure

Файл vsc-extension-quickstart.md предоставляет ссылку на важные файлы. В файле README.md можно предоставить документацию для нового расширения. Обратите внимание на файлы package.json, notebook.ts и pySample.ipynb.

Если у вас есть файлы или папки, которые не нужно публиковать, включите их имена в файл .vscodeignore.

Давайте взглянем на notebook.ts, чтобы понять, что делает новое расширение.

// This function is called when you run the command `Launch Notebooks: Test Notebook` from the
// command palette in Azure Data Studio. If you want any additional functionality
// to occur when you launch the book, add it to the activate function.
export function activate(context: vscode.ExtensionContext) {
    context.subscriptions.push(vscode.commands.registerCommand('launchNotebooks.test-notebook', () => {
        let notebooksToDisplay: Array<string> = processNotebooks();
        notebooksToDisplay.forEach(name => {
            azdata.nb.showNotebookDocument(vscode.Uri.file(name));
        });
    }));

    // Add other code here if you want to register another command.
}

Это основная функция, notebook.ts которая вызывается всякий раз, когда мы запускаем расширение с помощью команды Launch Notebooks: Test Notebook. Мы создаем новую команду с помощью API vscode.commands.registerCommand. Следующее определение внутри фигурных скобок — это код, который выполняется при каждом вызове команды. Каждую записную книжку, найденную функцией processNotebooks, можно открыть в Azure Data Studio с помощью azdata.nb.showNotebookDocument.

Файл package.json также играет важную роль в регистрации записных книжек запуска команд : Тестовая записная книжка.

"activationEvents": [
		"onCommand:launchNotebooks.test-notebook"
	],
	"main": "./out/notebook.js",
	"contributes": {
		"commands": [
			{
				"command": "launchNotebooks.test-notebook",
				"title": "Launch Notebooks: Test Notebook"
			}
		]
	}

У нас есть событие активации для команды, и мы добавили определенные точки вклада. Они отображаются в разделе вашего расширения в Marketplace, где публикуются расширения. Если вы хотите добавить дополнительные команды, укажите их в поле activationEvents. Дополнительные параметры см. в разделе События активации.

Упаковка расширения

Чтобы предоставить общий доступ другим пользователям, нужно упаковать расширение в один файл. Его можно опубликовать в магазине Marketplace расширений Azure Data Studio или предоставить для общего доступа другим участникам команды или сообщества. Для этого нужно установить другой пакет npm из командной строки.

npm install -g vsce

Внесите в файл README.md желаемые изменения. Затем перейдите к базовому каталогу расширения и выполните команду vsce package. При необходимости можно связать репозиторий с расширением или продолжить работу без него. Чтобы добавить его, добавьте аналогичную строку в файл package.json.

"repository": {
    "type": "git",
    "url": "https://github.com/laurajjiang/testnotebook.git"
}

После добавления этих строк создается файл my test-notebook-0.0.1.vsix, готовый для установки и публикации.

Запуск расширения

Чтобы запустить и проверить расширение, перейдите в Azure Data Studio и откройте палитру команд, нажав клавиши Ctrl+Shift+P. Найдите расширения команд : установите из VSIX и перейдите в папку, содержащую новое расширение.

Install VSIX

Расширение должно отображаться на панели расширения в Azure Data Studio. Откройте палитру команд еще раз, и вы найдете новую команду, созданную в нашей книге запуска расширения : Тестовая книга. После запуска откроется книга Jupyter Book, упакованная с нашим расширением.

Notebook-command

Поздравляем! Вы создали свое первое расширение Jupyter Notebook и теперь можете предоставить его.

Публикация расширения в Marketplace

Магазин Marketplace расширений Azure Data Studio пока находится в стадии разработки. Для публикации разместите VSIX-файл расширения в любом расположении, например на странице выпуска GitHub. Затем следует отправить запрос на вытягивание, который обновляет этот JSON-файл, добавляя в него сведения о расширении.

Следующие шаги

Из этого руководства вы узнали, как:

  • Создание проекта расширения.
  • Установка генератора расширений.
  • Создание расширения записных книжек.
  • Создайте расширение.
  • Упакуйте расширение.
  • Опубликуйте расширение в Marketplace.

Мы надеемся, что после ознакомления с этой статьей вы захотите создать собственное расширение для Azure Data Studio.

Если у вас появилась идея, но вы не знаете, с чего начать, откройте вопрос или отправьте твит нашей команде: azuredatastudio.

Для получения дополнительных сведений можно обратиться к руководству по расширениям Visual Studio Code, которое охватывает все существующие API и шаблоны.