Skip to main content

A JupyterLab extension for widgets based on Yjs.

Project description

JupyterLab extension for widgets based on Yjs

Requirements

  • JupyterLab == 4.0.0b0

Installation

You can install yjs-widgets using pip:

pip install yjs-widgets

Usage

import { IJupyterYModel } from './types';
import { JupyterYModel } from './model';
import { IJupyterYWidgetManager } from './notebookrenderer/types';
import {
  JupyterFrontEnd,
  JupyterFrontEndPlugin
} from '@jupyterlab/application';

class MyWidget {
  constructor(yModel: IJupyterYModel, node: HTMLElement) {
    this.yModel = yModel;
    this.node = node;
    yModel.sharedModel.attrsChanged.connect(() => {
      this._attrsChanged();
    });
    node.textContent = 'Hello world!';
  }

  _attrsChanged(): void {
    const foo: string = this.yModel.sharedModel.getAttr('foo') as string;
    const bar: string = this.yModel.sharedModel.getAttr('bar') as string;
    this.node.textContent = `foo=${foo}, bar=${bar}`;
  }

  yModel: IJupyterYModel;
  node: HTMLElement;
}

export const foo: JupyterFrontEndPlugin<void> = {
  id: 'foo:bar',
  autoStart: true,
  requires: [IJupyterYWidgetManager],
  activate: (app: JupyterFrontEnd, wm: IJupyterYWidgetManager): void => {
    wm.registerWidget('MyWidget', JupyterYModel, MyWidget);
  }
};

Contributing

yjs-widgets is an open-source project, and contributions are always welcome. If you would like to contribute, please fork the repository and submit a pull request.

See CONTRIBUTING for dev installation instructions.

License

yjs-widgets is licensed under the BSD 3-Clause License. See the LICENSE file for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yjs_widgets-0.5.0.tar.gz (150.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yjs_widgets-0.5.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file yjs_widgets-0.5.0.tar.gz.

File metadata

  • Download URL: yjs_widgets-0.5.0.tar.gz
  • Upload date:
  • Size: 150.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for yjs_widgets-0.5.0.tar.gz
Algorithm Hash digest
SHA256 d7868f3facdad1b68979ce8dab5534c8cfaf681c285d4f01b1986afd0c50ebfe
MD5 47cdb0727bfbec684c0643a4a901a7f7
BLAKE2b-256 633d664638387a912d43a62985c5440e25687098aedde40c95fe04ea13ff152c

See more details on using hashes here.

File details

Details for the file yjs_widgets-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: yjs_widgets-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for yjs_widgets-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d321c940be6511af27a55064ccee0b3b5809df2dd80c2f18fcaf6f88009db23e
MD5 19092495682a782579e562f056ef63ed
BLAKE2b-256 3e6be3cdb640204ee4a69657c7a481bfa206b57bedc8c42e1336d2db1500f5ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page