Skip to main content

jupyterlab-save-py

PyPI License: MIT

jupyterlab-save-py is a JupyterLab 4 prebuilt frontend extension that adds a notebook toolbar button and command palette item named Save .py.

The command converts the active .ipynb notebook to a sibling .py file on the same Jupyter server using JupyterLab's built-in contents API. It does not run a separate service and does not install a Jupyter Server extension.

Features

  • JupyterLab 4.x prebuilt frontend extension
  • Toolbar button labeled Save .py for notebooks
  • Command palette command labeled Save .py
  • Saves next to the active notebook with the same basename and .py extension
  • Uses the JupyterLab contents manager, not browser downloads
  • Configurable output format:
    • percent: # %% cell markers
    • script: plain Python with cell comments
  • Configurable overwrite behavior

Install

From PyPI:

pip install jupyterlab-save-py

From this repository:

uv sync
uv pip install -e .

Then start JupyterLab:

jupyter lab

Settings

Open JupyterLab's settings editor and search for Save .py.

Default settings:

{
  "format": "percent",
  "overwrite": true
}

When overwrite is false, existing files are not replaced. The extension will save to name-1.py, name-2.py, and so on.

Development

Install dependencies into .venv with uv:

uv sync
uv run jlpm install
uv run jlpm build
uv pip install -e .

Run JupyterLab:

uv run jupyter lab

Watch TypeScript and labextension builds during development:

uv run jlpm watch

Build

Build frontend assets and Python distributions:

uv run jlpm install
uv run jlpm build:prod
uv run python -m build

The distributions are written to dist/.

Publish

This repository is configured for PyPI Trusted Publishing from GitHub Releases. Configure the PyPI project with:

  • Owner: MihneaTeodorStoica
  • Repository: jupyterlab-save-py
  • Workflow: publish.yml
  • Environment: pypi

Manual upload is also possible:

uv run python -m twine upload dist/*

See CONTRIBUTING.md for the release checklist.

License

MIT

Metadata

Release files for jupyterlab-save-py 0.1.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 jupyterlab-save-py 0.1.3
File Size Uploaded
jupyterlab_save_py-0.1.3.tar.gz 251.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyterlab-save-py 0.1.3
File Interpreter ABI Platform
jupyterlab_save_py-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 268.3 kB

Release files / jupyterlab_save_py-0.1.3.tar.gz

Download URL jupyterlab_save_py-0.1.3.tar.gz
Size 251.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5eae703c31ffbe9a49ad7f21a2f79ed1fc6771365b0d5ff2e203df09be3b45d3
BLAKE2b-256 checksum
How to use checksums
023ca6403dcdc7d661191ef96300406adf4442fd8e4ef0b23e6816a06b286a2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / jupyterlab_save_py-0.1.3-py3-none-any.whl

Download URL jupyterlab_save_py-0.1.3-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1db230bb35300fcec65d0b272b715b78c37a9d16107f0dca7d99a4eeaf29d56b
BLAKE2b-256 checksum
How to use checksums
c6bcb00e798249a77b50c0fbe84284df14e2b2e963aa1e0200ee7be1d4c6cb7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

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