Skip to main content

Z shell kernel for Jupyter

Project description

zsh kernel for jupyter

a simple z shell jupyter kernel powered by pexpect and enthusiasm

support link: https://ko-fi.com/danoak

installation

pipenv

pipenv --python 3 install notebook zsh_jupyter_kernel
pipenv run python -m zsh_jupyter_kernel.install --sys-prefix

pip

python3 -m pip install notebook zsh_jupyter_kernel
python3 -m zsh_jupyter_kernel.install --sys-prefix

technical overview

how does code execution work

the kernel configures zsh prompt string to its own custom value.
when a user requests a cell execution, the code is sent to kernel.
then the kernel puts the frontend on hold, sends the code to zsh process, and waits for the prompt string to release the frontend and let user request more code execution.

code completion

code completion is powered by quite a non-trivial script that involves multiple steps including spawning another temporary zsh process and capturing completion options into a data structure that jupyter frontend understands.

code inspection

code inspection is done by man --pager ul which sends the whole man page to the frontend.

code completeness

code completeness is checked with the temporary zsh process and help of EXEC zsh option which allows to switch off code execution and simply check if the code is complete using the exit code of the zsh process itself.

stderr

stderr content is just send to the front-end as regular stdout.

stdin

stdin is not supported because of the execution system when a process spawned by user waits for stdin, there is no way to detect it.

missing features

  • history
  • rich html output for things like images and tables
  • stdin. might be possible with or without the current system
  • pagers. might be possible or not
  • stored and referenceable outputs

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

zsh-jupyter-kernel-3.4.1.tar.gz (11.8 kB view hashes)

Uploaded Source

Built Distribution

zsh_jupyter_kernel-3.4.1-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page