Skip to main content

Advanced Jupyter Notebook to Python script converter with round-trip support

Project description

notebook-to-code

Advanced Jupyter Notebook ➜ Python converter with round‑trip metadata, semantic Markdown processing, a pluginable theme system, batch mode, and a friendly CLI.

Key features

  • Convert .ipynb.py with clear, annotated cells
  • Optional reverse conversion (annotated .py.ipynb)
  • Semantic Markdown processing and wrapping
  • Round‑trip metadata to validate integrity
  • Batch processing for folders/patterns
  • Theme plugins (e.g., default, minimal)
  • Rich CLI output (optional)

Install

  • Stable release:
    • pip install notebook-to-code
  • Extras:
    • GUI: pip install notebook-to-code[gui]
    • Analysis: pip install notebook-to-code[analysis]
    • Dev: pip install notebook-to-code[dev]

Quickstart

  • Convert a single notebook:
    • notebook-to-code convert path/to/notebook.ipynb -o out.py --stats
  • Batch convert a folder:
    • notebook-to-code batch notebooks/ -o converted/ --pattern *.ipynb
  • Reverse (annotated .py ➜ .ipynb):
    • notebook-to-code reverse script.py -o out.ipynb
  • List themes:
    • notebook-to-code themes

CLI Options (highlights)

  • --theme default|minimal choose a theme
  • --no-metadata disable metadata preservation
  • --no-round-trip disable round‑trip metadata
  • --no-semantic-markdown disable semantic Markdown
  • --quality-analysis enable code quality checks
  • --max-line-length 88 wrap text/comments at length
  • --stats show conversion statistics

Python API (minimal)

from notebook_converter import AdvancedNotebookConverter, ConversionOptions

options = ConversionOptions(semantic_markdown=True, round_trip_metadata=True)
converter = AdvancedNotebookConverter(options=options)

out_file, stats = converter.convert_notebook("path/to/notebook.ipynb", "out.py")
print("Converted:", out_file)

Project structure

  • Package: notebook_converter (import path)
  • CLI: notebook-to-code (entry point)
  • Source: notebook_converter/src/notebook_converter/

Contributing

  • Create a virtual env and install in editable mode:
    • pip install -e .[dev]
  • Run tests (if configured):
    • pytest -q

License

  • MIT

How PyPI description works

  • The "Project description" on PyPI is rendered from this README.md.
  • Configuration is set in pyproject.toml via readme = "README.md" and description.
  • To update what appears on PyPI:
    1. Edit this README.
    2. Bump the version in pyproject.toml and in notebook_converter/src/notebook_converter/__init__.py.
    3. Rebuild and upload a new release:
      • py -m build && py -m twine upload dist/*
  • PyPI does not allow editing a release’s metadata in place; publish a new version to change the description.

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

notebook_to_code-3.0.1.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

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

notebook_to_code-3.0.1-py3-none-any.whl (32.6 kB view details)

Uploaded Python 3

File details

Details for the file notebook_to_code-3.0.1.tar.gz.

File metadata

  • Download URL: notebook_to_code-3.0.1.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for notebook_to_code-3.0.1.tar.gz
Algorithm Hash digest
SHA256 0cdea5859f29869f3c12189a8ff52529debcae1fec2ea943376ce0ead5c2c2d2
MD5 ea1b0d7e4440bf5234396a79c450a89d
BLAKE2b-256 47d0865e887be100da55e32a14b817d36f7d6abfcf59534eef1f65f71403c3f5

See more details on using hashes here.

File details

Details for the file notebook_to_code-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for notebook_to_code-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56cb95f9223abbbaafdf8863721bd24f36ac89d39e662a10e89b8e9ab14d7ae1
MD5 e44f015d9d64aa74317c2a9c34ea35b0
BLAKE2b-256 a61db412979ef7694f538291213df5015ff85fcd144a2d80b37c12e5730cab91

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