Kiran Ghatage
Kiran Ghatage

Reputation: 407

How to Share data between a Jupyter Notebook (.ipynb file) and a custom JupyterLab extension?

Data sharing between jupyter notebook to custom typescript extension

//notebook code

` from ipykernel.comm import Comm

# Open a communication channel
comm = Comm(target_name='extension_comm')

# Send data from notebook to extension
comm.send({'data': 'Hello from notebook!'})`

//Custom extension code

` import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; import { INotebookTracker } from '@jupyterlab/notebook'; import { ICommandPalette } from '@jupyterlab/apputils'; import { KernelConnection } from '@jupyterlab/services';

const getCommData: JupyterFrontEndPlugin<void> = {
  id: 'split-panel-link-click',
  autoStart: true,
  requires: [INotebookTracker, ICommandPalette],
  activate: (
    app: JupyterFrontEnd,
    notebookTracker: INotebookTracker,
    palette: ICommandPalette
  ) => {
    console.log('Plugin is activated!');

   
    const kernel: KernelConnection = app.serviceManager.sessions
      .running()
      .next().value.kernel;
    const comm = kernel.createComm('extension_comm');
    console.log('comm', comm);
    comm.onMsg = (msg: { content: { data: any } }) => {
      const eventData = msg.content.data;
      console.log('eventData', eventData);
      if (eventData.event === 'extension_comm') {
        console.log('Event received:', eventData.data);
      }
    };
  }
};

export default getCommData;

`

Upvotes: 0

Views: 30

Answers (0)

Related Questions