Skip to main content

Integrate code from Jupyter Notebooks directly into Python projects while retaining native GitHub rendering.

Project description

EasyJupyter

🚧🚧🚧🚧🚧🚧🚧🚧 ‼️ Library not ready yet! 🚧🚧🚧🚧🚧🚧🚧🚧

⭐️ #TODO fix this wording, has to be a better way to say this -> This library is designed so that code can be integrated from Jupyter Notebooks into Python projects or other Notebooks, or just work with notebooks that you want to be displayed as notebooks.

Benefits:

  • Native GitHub Rendering: Keep your code in notebooks so plots and markdown render natively on GitHub.
  • Zero Clutter: Generated cache files are stored in a hidden .easyJupyter_cache directory, keeping your workspace clean.
  • Custom ignore syntax to ignore exploratory cells, or lines of code.

Ignore Notebook Commands

Use these commands inside your notebooks to control what gets compiled into the cache file.

  • Markdown Cells: Ignored by default.
  • Ignore An Entire Cell:
    • Add # @i-c to the very top of the cell.
  • Ignore One Line In A Cell:
    • Add # @i-l above the line you want to ignore.

Getting Started

Installation & Initial Sync

First, install the library, then run the sync command to generate the cache files for any existing notebooks.

pip install easyjupyter
easyjupyter --sync

Usage

🚨 In your project's entry point (eg., main.py), or in a notebook (if its importing code from another notebook or a script), import the library at the very top of the file:

import EasyJupyter
from my_notebook import Class, Function_name

How It Works: The moment EasyJupyter is imported, it spawns a detached background daemon watcher. Every time you save a notebook, the daemon instantly updates the corresponding hidden cache file.

Arguments

Cache Cleanup

  • If you rename, move, or delete a notebook, the old cache file will remain in the hidden cache directory. To clean up the cache, run:

    easyjupyter --clean
    

Watch Daemon Logs

  • If you incorrectly use EasyJupyter in a notebook (e.g., redundant ignore comments), warnings will be added to the cache file of the notebook, so that when you run your program as a whole, the warnings are printed to the console. However, if you are only using notebooks you wont be able to see these warnings, so to view the active warning logs, run:

    easyjupyter --watch
    

VSC Pylance Intellisense Setup

VS Code's Pylance intellisense will not work with notebooks, or the hidden cache files generated for the notebooks. But you can tell it where to look for the cache files. Run one of the following commands in the root of your project:

  1. If you don't have a .vscode/settings.json file yet, run:

    mkdir -p .vscode && echo '{
        "python.analysis.extraPaths": [
            "./.easyJupyter_cache"
        ]
    }' > .vscode/settings.json
    
  2. If you already have a .vscode/settings.json file, add the following to it:

    {
        "python.analysis.extraPaths": [
            "./.easyJupyter_cache"
        ]
    }
    

Other

If any issues occur with the watcher daemon, manually run it with: python -m EasyJupyter.watcher (note that this only spawns the daemon in the foreground), or check the logs in .easyJupyter_cache/watcher.log.

Not For You

  • Dev Notes:
    • When updating the daemon, we need to clear the old cache and restart the daemon.

      pkill -f EasyJupyter.watcher
      rm -rf .easyJupyter_cache
      easyjupyter --sync
      
    • Install locally: pip install -e .

    • Distributing (requirements, build and twine):

      1. Increment the version number in pyproject.toml
      2. Build the dist with python -m build
      3. Publish to PYPI (pip) with twine upload --config-file .pypirc dist/* using the .pypirc file in the root of the project.

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

easyjupyter-0.1.1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

easyjupyter-0.1.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file easyjupyter-0.1.1.tar.gz.

File metadata

  • Download URL: easyjupyter-0.1.1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for easyjupyter-0.1.1.tar.gz
Algorithm Hash digest
SHA256 fda46be40804e7c3eff78be9aae91343091144b70b881354e11da8f662cb50a3
MD5 fe1fd266ce08326f4337ccdd8ece98df
BLAKE2b-256 77fba81ff5dcfddfafafd9a4ada5fc8cec97b3f8b0c3c0e8689e817189d13f9f

See more details on using hashes here.

File details

Details for the file easyjupyter-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: easyjupyter-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for easyjupyter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2914ce888bc29d03c7d750ca2b3de1d1eb3a34728e8e40a2c183608e05d3daf
MD5 fb4c5e559b3e1ab64909c61acce6b1cf
BLAKE2b-256 6793f2dd662381f4ae8ef08fa62c9ac08e56ce39204ecce2db151cec58e5159f

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