Skip to main content

Datalayer Core

JupyterLab Extensions

Use these snippets to activate the Datalayer plugins.

import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';
import { doActivateDatalayerExtension } from ".";

const plugin: JupyterFrontEndPlugin<void> = {
  id: '@datalayer/jupyter-kernels:activator',
  description: 'Jupyter Kernels Activator.',
  autoStart: true,
  requires: [],
  activate: (app: JupyterFrontEnd) => {},
    activateDatalayerExtension(app);
}

export default plugin; 
import { CommandRegistry } from "@lumino/commands";
import { JupyterFrontEnd } from "@jupyterlab/application";
A
const ACTIVATE_DATALAYER_EXTENSION_COMMAND = "@datalayer/jupyter-kernels:datalayer:activate";

export function activateDatalayerExtension(app: JupyterFrontEnd) {
  try {
    function doActivateDatalayerExtension(
      commands: CommandRegistry,
      changes: CommandRegistry.ICommandChangedArgs,
    ) {
      if (
        changes.type === "added" &&
        changes.id === ACTIVATE_DATALAYER_EXTENSION_COMMAND
      ) {
        commands
          .execute(ACTIVATE_DATALAYER_EXTENSION_COMMAND)
          .catch((reason: any) => {
            console.warn("Error while activating the GPU extension", reason);
          });
      }

      commands.commandChanged.disconnect(doActivateDatalayerExtension);
    }
    if (app.commands.hasCommand(ACTIVATE_DATALAYER_EXTENSION_COMMAND)) {
      doActivateDatalayerExtension(app.commands, {
        id: ACTIVATE_DATALAYER_EXTENSION_COMMAND,
        type: "added",
      });
    } else {
      app.commands.commandChanged.connect(doActivateDatalayerExtension);
    }
  } catch (e) {
    console.warn("Error while activating the Datalayer extension", e);
  }
}