Udostępnij za pośrednictwem


Tworzenie rozszerzenia notesu Jupyter Notebook

W tym samouczku pokazano, jak utworzyć nowe rozszerzenie programu Jupyter Notebook usługi Azure Data Studio. Rozszerzenie dostarcza przykładowy notes Jupyter Notebook, który można otworzyć i uruchomić w narzędziu Azure Data Studio.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Utwórz projekt rozszerzenia.
  • Zainstaluj generator rozszerzeń.
  • Utwórz rozszerzenie notesu.
  • Uruchom rozszerzenie.
  • Spakuj rozszerzenie.
  • Opublikuj rozszerzenie na platformie handlowej.

Używane interfejsy API

  • azdata.nb.showNotebookDocument

Przypadki użycia rozszerzeń

Istnieje kilka różnych powodów, dla których można utworzyć rozszerzenie notesu:

  • Udostępnianie interaktywnej dokumentacji
  • Zapisywanie i uzyskiwanie stałego dostępu do tego notesu
  • Zapewnianie problemów z kodowaniem dla użytkowników, których należy stosować
  • Wersja i śledzenie aktualizacji notesu

Wymagania wstępne

Narzędzie Azure Data Studio jest oparte na tej samej strukturze co program Visual Studio Code, więc rozszerzenia dla programu Azure Data Studio są kompilowane przy użyciu programu Visual Studio Code. Do rozpoczęcia pracy potrzebne są następujące składniki:

  • Node.js zainstalowane i dostępne w pliku $PATH. Node.js obejmuje narzędzie npm, Node.js Menedżer pakietów, które służy do instalowania generatora rozszerzeń.
  • Program Visual Studio Code do debugowania rozszerzenia.
  • Upewnij się, że znajduje się azuredatastudio w ścieżce. W przypadku systemu Windows upewnij się, że w setup.exe wybrano opcję Dodaj do ścieżki . W przypadku komputerów Mac lub Linux uruchom polecenie Zainstaluj "azuredatastudio" w ścieżce PATH z palety poleceń w narzędziu Azure Data Studio.

Instalowanie generatora rozszerzeń

Aby uprościć proces tworzenia rozszerzeń, utworzyliśmy generator rozszerzeń przy użyciu narzędzia Yeoman. Aby go zainstalować, uruchom następujące polecenie w wierszu polecenia:

npm install -g yo generator-azuredatastudio

Tworzenie rozszerzenia

Aby utworzyć rozszerzenie:

  1. Uruchom generator rozszerzeń za pomocą następującego polecenia:

    yo azuredatastudio

  2. Wybierz pozycję Nowe notesy (indywidualne) z listy typów rozszerzeń.

    Generator rozszerzeń notesu

  3. Wykonaj kroki, aby wypełnić nazwę rozszerzenia. Na potrzeby tego samouczka użyj notesu testowego. Następnie wprowadź nazwę wydawcy. Na potrzeby tego samouczka użyj firmy Microsoft. Na koniec dodaj opis.

Teraz jest to miejsce, w którym istnieje rozgałęzianie. Możesz dodać już utworzone notesy Jupyter Notebook lub użyć przykładowych notesów dostarczonych przez generator.

Na potrzeby tego samouczka użyjemy przykładowego notesu języka Python:

Wybieranie przykładu języka Python

Jeśli masz notesy, które cię interesują, odpowiedz, że masz istniejące notesy, które chcesz wysłać. Podaj bezwzględną ścieżkę pliku, w której są aktywne wszystkie notesy lub pliki markdown.

Wykonanie poprzednich kroków spowoduje utworzenie nowego folderu za pomocą przykładowego notesu. Otwórz folder w programie Visual Studio Code i wszystko jest gotowe do wysłania nowego rozszerzenia notesu.

Omówienie rozszerzenia

W tym przypadku projekt powinien wyglądać następująco:

struktura pliku rozszerzenia

Plik vsc-extension-quickstart.md zawiera odwołanie do ważnych plików. Plik README.md to miejsce, w którym można podać dokumentację nowego rozszerzenia. Zanotuj pliki package.json, notebook.tsi pySample.ipynb .

Jeśli istnieją pliki lub foldery, których nie chcesz publikować, możesz dołączyć ich nazwy do .vscodeignore pliku.

Przyjrzyjmy się notebook.ts temu, co robi nasze nowo utworzone rozszerzenie.

// 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.
}

Jest to główna funkcja wywoływana za notebook.ts każdym razem, gdy uruchamiamy nasze rozszerzenie za pomocą polecenia Uruchom notesy: Notes testowy. Tworzymy nowe polecenie przy użyciu interfejsu vscode.commands.registerCommand API. Poniższa definicja wewnątrz nawiasów klamrowych to kod uruchamiany za każdym razem, gdy wywołujemy nasze polecenie. Dla każdego notesu znalezionego w naszej processNotebooks funkcji otworzymy go w narzędziu Azure Data Studio przy użyciu polecenia azdata.nb.showNotebookDocument.

Plik package.json odgrywa również ważną rolę w rejestrowaniu naszego polecenia Uruchom notesy: Notes testowy.

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

Mamy zdarzenie aktywacji dla polecenia i dodaliśmy również określone punkty współtworzenia. Te punkty współtworzenia są wyświetlane na platformie handlowej rozszerzeń, w której są publikowane rozszerzenia, gdy użytkownicy patrzą na rozszerzenie. Jeśli chcesz dodać więcej poleceń, pamiętaj, aby dodać je do activationEvents pola. Aby uzyskać więcej opcji, zobacz Zdarzenia aktywacji.

Pakowanie rozszerzenia

Aby udostępnić je innym osobom, należy spakować rozszerzenie w jeden plik. Rozszerzenie można opublikować na platformie handlowej rozszerzenia Azure Data Studio lub udostępnić zespołowi lub społeczności. Aby wykonać ten krok, należy zainstalować inny pakiet npm z wiersza polecenia.

npm install -g vsce

Zmodyfikuj README.md plik, aby go polubić. Następnie przejdź do katalogu podstawowego rozszerzenia i uruchom polecenie vsce package. Opcjonalnie możesz połączyć repozytorium z rozszerzeniem lub kontynuować bez tego repozytorium. Aby go dodać, dodaj podobny wiersz do pliku package.json .

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

Po dodaniu my test-notebook-0.0.1.vsix tych wierszy zostanie utworzony i gotowy do zainstalowania i udostępnienia go światu.

Uruchamianie rozszerzenia

Aby uruchomić i przetestować rozszerzenie, otwórz narzędzie Azure Data Studio i otwórz paletę poleceń, wybierając Ctrl+Shift+P. Znajdź polecenie Rozszerzenia: Zainstaluj z programu VSIX i przejdź do folderu zawierającego nowe rozszerzenie.

Instalowanie programu VSIX

Rozszerzenie powinno być teraz wyświetlane w panelu rozszerzenia w narzędziu Azure Data Studio. Ponownie otwórz paletę poleceń i znajdziesz nowe polecenie utworzone za pomocą naszego rozszerzenia Launch Book: Test Book. Po uruchomieniu należy otworzyć książkę Jupyter, którą spakowaliśmy z naszym rozszerzeniem.

Polecenie notesu

Gratulacje! Skompilujesz i możesz teraz dostarczyć swoje pierwsze rozszerzenie Jupyter Notebook.

Publikowanie rozszerzenia na platformie handlowej

Platforma handlowa rozszerzeń usługi Azure Data Studio jest w budowie. Aby opublikować, hostuj rozszerzenie VSIX gdzieś, na przykład na stronie wydania usługi GitHub. Następnie prześlij żądanie ściągnięcia, które aktualizuje ten plik JSON przy użyciu informacji o rozszerzeniu.

Następne kroki

W tym samouczku zawarto informacje na temat wykonywania następujących czynności:

  • Utwórz projekt rozszerzenia.
  • Zainstaluj generator rozszerzeń.
  • Utwórz rozszerzenie notesu.
  • Utwórz rozszerzenie.
  • Spakuj rozszerzenie.
  • Opublikuj rozszerzenie na platformie handlowej.

Mamy nadzieję, że po przeczytaniu tego artykułu zainspirujesz się do utworzenia własnego rozszerzenia dla usługi Azure Data Studio.

Jeśli masz pomysł, ale nie wiesz, jak rozpocząć pracę, otwórz problem lub tweet zespołu w witrynie azuredatastudio.

Aby uzyskać więcej informacji, przewodnik rozszerzenia programu Visual Studio Code obejmuje wszystkie istniejące interfejsy API i wzorce.