Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stable Kernel Execution API #15050

Merged
merged 2 commits into from
Jan 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions src/api.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import type { CancellationToken, ProviderResult, CancellationError, Event, Uri } from 'vscode';

export interface Jupyter {
/**
* Access to the Jupyter Kernels API.
*/
readonly kernels: Kernels;
/**
* Creates a Jupyter Server Collection that can be displayed in the Notebook Kernel Picker.
*
Expand All @@ -21,6 +25,7 @@ export interface Jupyter {
): JupyterServerCollection;
}

// #region JupyterServersCollections API
/**
* Provides information required to connect to a Jupyter Server.
*/
Expand Down Expand Up @@ -161,3 +166,60 @@ export interface JupyterServerCollection {
*/
dispose(): void;
}
// #endregion

// #region Kernels API
interface Output {
/**
* The output items of this output.
*/
items: OutputItem[];
/**
* Arbitrary metadata for this cell output. Can be anything but must be JSON-stringifyable.
*/
metadata?: { [key: string]: any };
}
interface OutputItem {
/**
* The mime type of the output.
* Includes standard mime types (but not limited to) `text/plain`, `application/json`, `text/html`, etc.
*
* Special mime types are:
* - `application/x.notebook.stream.stdout`: The output is a stream of stdout. (same as `NotebookCellOutputItem.stdout('').mime`)
* - `application/x.notebook.stream.stderr`: The output is a stream of stderr. (same as `NotebookCellOutputItem.stderr('').mime`)
* - `application/vnd.code.notebook.error`: The output is a stream of stderr. (same as `NotebookCellOutputItem.error(...).mime`)
*
*/
mime: string;
/**
* The data of this output item.
*/
data: Uint8Array;
}
/**
* Represents a Jupyter Kernel.
*/
export interface Kernel {
/**
* Language of the kernel.
* E.g. python, r, julia, etc.
*/
language: string;
/**
* Executes code in the kernel without affecting the execution count & execution history.
*
* @param code Code to be executed.
* @param token Triggers the cancellation of the execution.
* @returns Async iterable of outputs, that completes when the execution is complete.
*/
executeCode(code: string, token: CancellationToken): AsyncIterable<Output>;
}
export interface Kernels {
/**
* Gets an the kernel associated with a given resource.
* For instance if the resource is a notebook, then get the kernel associated with the given Notebook document.
* Only kernels which have already been started by the user and belonging to Notebooks that are currently opened will be returned.
*/
getKernel(uri: Uri): Thenable<Kernel | undefined>;
}
// #endregion Kernels API
66 changes: 0 additions & 66 deletions src/api.proposed.kernelApi.d.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ suite('DataViewer @webview', function () {
await vscode.commands.executeCommand('workbench.debug.viewlet.action.removeAllBreakpoints');
});
// Start debugging using the python extension
test('Open from Python debug variables', async () => {
test.skip('Open from Python debug variables', async () => {
// First off, open up our python test file and make sure editor and groups are how we want them
const textDocument = await openFile(testPythonFile);

Expand Down
2 changes: 1 addition & 1 deletion src/test/datascience/plotViewer/plotViewer.vscode.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ suite('VSCode Notebook PlotViewer integration - VSCode Notebook @webview', funct
});
suiteTeardown(() => closeNotebooksAndCleanUpAfterTests(disposables));

test('Verify plot viewer is active for PNG plots', async function () {
test.skip('Verify plot viewer is active for PNG plots', async function () {
await startJupyterServer();
await closeActiveWindows();
await createEmptyPythonNotebook(disposables);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ mySet = {1, 2, 3}
});

// Test opening data viewers while another dataviewer is open
test('Open dataviewer', async function () {
test.skip('Open dataviewer', async function () {
// Send the command to open the view
await commands.executeCommand(Commands.OpenVariableView);

Expand Down
Loading