Skip to main content

pyobservablejs

pyobservablejs brings reactive Observable notebooks to Python. Build cells, charts, and browser inputs, or import an existing notebook. Display the whole notebook or selected cells in JupyterLab, marimo, VS Code, Colab, and other anywidget hosts.

An interactive notebook built from Python

Try it in your browser · Quickstart · Examples · API reference

Start

Install in a Python 3.11 through 3.14 notebook environment:

pip install pyobservablejs

Create an input and a result that updates when it changes:

import observablejs as obs

notebook = obs.Notebook(
    obs.ojs(
        "viewof threshold = Inputs.range([0, 1], {value: 0.5, step: 0.1})",
        key="control",
    ),
    obs.js(
        "const doubled = threshold * 2; display(md`Doubled: **${doubled}**`);",
        key="result",
    ),
)
view = notebook.view()
view

Cells run in the browser through Notebook Kit. Its Inputs library loads from the network. Use notebook and module sources you trust, since their JavaScript runs in the host page.

Experimental: the API may change between releases.

Run headlessly

Read notebook values in Python scripts and services. Native wheels for Linux, macOS, and Windows evaluate cells in a V8 engine inside the Python process:

print(notebook.with_variables(threshold=0.5).data["doubled"].to_python())

Read Python values, Polars or pandas dataframes, Arrow tables, and attachment bytes through the data and file namespaces. Headless Python guide.

Build on it

Documentation · Troubleshooting · Contributing · MIT license

Built on Observable's Notebook Kit and anywidget. pyobsplot informed the Python variable API.

Metadata

Release files for pyobservablejs 0.3.0

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

Source distribution (sdist)

Source distribution for pyobservablejs 0.3.0
File Size Uploaded Provenance Actions
pyobservablejs-0.3.0.tar.gz 1.8 MB Without provenance Details for pyobservablejs-0.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for pyobservablejs 0.3.0
File Actions
pyobservablejs-0.3.0-py3-none-any.whl Python 3 none any Details for pyobservablejs-0.3.0-py3-none-any.whl
pyobservablejs-0.3.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details for pyobservablejs-0.3.0-cp311-abi3-win_amd64.whl
pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details for pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl
pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details for pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl
pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_x86_64.whl CPython 3.11 abi3 macOS 12.0+ x86-64 Details for pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_x86_64.whl
pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_arm64.whl CPython 3.11 abi3 macOS 12.0+ ARM64 Details for pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_arm64.whl

Total release size: 149.4 MB

Release files / pyobservablejs-0.3.0.tar.gz

Download URL pyobservablejs-0.3.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
70a0adb8143267a2a8cb9e5e6934b81738047ef85816b971f3144b4915423da1
BLAKE2b-256 checksum
How to use checksums
e0e177f629b3b81ac50e714f49d16311de7036a14ffa31a74eb95ff5b0fd6cf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-py3-none-any.whl

Download URL pyobservablejs-0.3.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
199949ce8a761d5cb2d3d269d8d76ae14bb6bfaf0d8ffdf8e7696fbafccd370f
BLAKE2b-256 checksum
How to use checksums
ab83d1386bf11bed256a7be6e7fa9cc74e7162d9f666f9e9305b5b75c1194eac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-cp311-abi3-win_amd64.whl

Download URL pyobservablejs-0.3.0-cp311-abi3-win_amd64.whl
Size 27.5 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d170365975f8610ac8ca75b254598078d1257e77c03c42e87d43f2ad31b3f424
BLAKE2b-256 checksum
How to use checksums
9d98aeb84006505308561385419cc15be0ee40752ad7ca4fa253245957426209
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 30.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
26c9c0ef1324373e234c2ef1e2063924068577aa1537971ec6d2e5cbdc9ae3ae
BLAKE2b-256 checksum
How to use checksums
5de87a215c146b115be69645690714e9b3c9b84bcbf705921a096c817e6b9ecf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL pyobservablejs-0.3.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 31.3 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
9d0e9e5b7ac8200006e85bf0877a1563e6948b3fd1811c40b6e9e200348948ab
BLAKE2b-256 checksum
How to use checksums
82ea70226e7478d193fde437984a8aea234ee33a038caa4a2ca548a30ccbfffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_x86_64.whl

Download URL pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_x86_64.whl
Size 29.1 MB
Tags CPython 3.11 abi3 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
00b1a419751657dce74561860653bd748ed6625b1c9f52c791ce3b9a9e236f2c
BLAKE2b-256 checksum
How to use checksums
a9149998c90c898607a743391c0a69b15ad210debb8619f3b31e8213d3324788
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_arm64.whl

Download URL pyobservablejs-0.3.0-cp311-abi3-macosx_12_0_arm64.whl
Size 28.2 MB
Tags CPython 3.11 abi3 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
cf26c00ca76d77fc91f0bb863bb406d2b2833e5cb0693e1d0245cbd6af903ad4
BLAKE2b-256 checksum
How to use checksums
509e450010be991c54bb16969e95d195db456c2546b8d005e78bce45fb477aa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for pyobservablejs 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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