Reputation: 407
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