Skip to main content

📋 waxtablet

Waxtablet is an efficient, opinionated client for notebooks to interface with the Language Server Protocol.

It handles document synchronization and request processing, so you can integrate LSP (e.g., basedpyright or ty) into a remote notebook product, without needing to manually synchronize every document edit, which can be slow or tricky running over the network.

Use cases

In a remote Jupyter kernel, the primary requests would be:

  • textDocument/hover: Information about a symbol at a given line and character.
  • textDocument/completion: Get a list of completions while typing.
  • textDocument/semanticTokens: Compute semantic highlighting for a range of code.

While LSP has been designed for local IDEs, waxtablet stores its own internal representation of all the cells. The goal is to get diagnostics from a remote server without needing to literally buffer or send every keystroke.

Example

import waxtablet


# Initialize an empty notebook (default).
lsp = waxtablet.NotebookLsp(
    server=["basedpyright", "--stdio"],
    # server=["ty", "server"],
)
await lsp.start()

# Example usage
await lsp.add_cell("cell1", index=0, kind=waxtablet.CellKind.CODE)
await lsp.set_text("cell1", "print('Hello, world!')\ndic")
await lsp.hover("cell1", line=0, character=0)
await lsp.completion("cell1", line=1, character=3)

# Shutdown the server
await lsp.shutdown()

License

Code is released under the MIT License.

Metadata

Release files for waxtablet 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for waxtablet 0.2.3
File Size Uploaded
waxtablet-0.2.3.tar.gz 20.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for waxtablet 0.2.3
File Interpreter ABI Platform
waxtablet-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 29.3 kB

Release files / waxtablet-0.2.3.tar.gz

Download URL waxtablet-0.2.3.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
68fb2100b0fa817e42de51c1cacab64bde3f415933e662cdcbedf9c353741fb3
BLAKE2b-256 checksum
How to use checksums
0113448765ae57395496dabdb498d09234a9eddef6d9d0d0177ce74256707030
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release files / waxtablet-0.2.3-py3-none-any.whl

Download URL waxtablet-0.2.3-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f521445d35aa38f67b2202c000411239406d6bb4484df18a80a2979a0c07732
BLAKE2b-256 checksum
How to use checksums
a61646b12e3deee30ef7a6520998603233ddf364e5f7d75c438eee985d422a84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page