From cdf4c94a2bab7f471d8daa5b9e26fe10ece901b7 Mon Sep 17 00:00:00 2001 From: Simon Forman Date: Tue, 23 Nov 2021 11:28:17 -0800 Subject: [PATCH] Using Jupyter. --- docs/1._Basic_Use_of_Joy_in_a_Notebook.ipynb | 6 +- docs/Joy in Jupyter.ipynb | 152 +++++++++++++++++++ docs/README.md | 72 +++++++++ 3 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 docs/Joy in Jupyter.ipynb diff --git a/docs/1._Basic_Use_of_Joy_in_a_Notebook.ipynb b/docs/1._Basic_Use_of_Joy_in_a_Notebook.ipynb index b388fdb..e72d937 100644 --- a/docs/1._Basic_Use_of_Joy_in_a_Notebook.ipynb +++ b/docs/1._Basic_Use_of_Joy_in_a_Notebook.ipynb @@ -218,9 +218,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -232,7 +232,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/docs/Joy in Jupyter.ipynb b/docs/Joy in Jupyter.ipynb new file mode 100644 index 0000000..8379751 --- /dev/null +++ b/docs/Joy in Jupyter.ipynb @@ -0,0 +1,152 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "61944c2e", + "metadata": {}, + "source": [ + "Using the Joypy (Thun) Jupyter kernal." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f7bb85e5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "41" + ] + } + ], + "source": [ + "23 18 +" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8d86c75f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "clear" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "ff9b5754", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15" + ] + } + ], + "source": [ + "45 30 gcd" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e1027ca3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "clear" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "aef6f509", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "words" + ] + }, + { + "cell_type": "markdown", + "id": "904ce05e", + "metadata": {}, + "source": [ + "``trace`` is only loaded in the ``pretty_printer.py`` module, so it's not automatically included in the dictionary in the kernel.\n", + "\n", + "Stdout is also not captured and returned to the notebook. (So ``words`` doesn't work, for example, and neither would ``trace`` if it was available, I imagine.)\n", + "\n", + "Also, exceptions (like ``trace`` not being found in the dictionary) lead to the kernal \"hanging\" in the sense that you just see the \"pending computation\" asterix in the notebook cell.\n", + "\n", + "This would seem to indicate that I should polish the Joy kernel, eh?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f491e33f", + "metadata": {}, + "outputs": [], + "source": [ + "[1 2 +]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "31d6ec54", + "metadata": {}, + "outputs": [], + "source": [ + "trace" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8a3f442", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Joypy", + "language": "", + "name": "thun" + }, + "language_info": { + "file_extension": ".joy", + "mimetype": "text/plain", + "name": "Joy" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/README.md b/docs/README.md index 19f3dcf..6308639 100644 --- a/docs/README.md +++ b/docs/README.md @@ -23,6 +23,78 @@ in the `joypy/docs` directory and run the notebooks. ...something about the `notebook_preamble.py` file. +## Installing the [Joy Jupyter Kernel](https://osdn.net/projects/joypy/scm/git/Thun/tree/master/docs/jupyter_kernel/) + +[Joy Jupyter Kernel](https://osdn.net/projects/joypy/scm/git/Thun/tree/master/docs/jupyter_kernel/) + +Tracking down the deets: +- [Installing Kernels](https://jupyter.readthedocs.io/en/latest/install/kernels.html) +- [Kernels](https://jupyter.readthedocs.io/en/latest/projects/kernels.html#kernels-langs) +- [Jupyter kernels](https://github.com/ipython/ipython/wiki/IPython-kernels-for-other-languages) +- [Jupyter kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels) +- [Creating new Jupyter kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels#creating-new-jupyter-kernels) +- "[Making kernels for Jupyter](https://jupyter-client.readthedocs.io/en/latest/kernels.html) in the documentation." + +From [Making simple Python wrapper kernels](https://jupyter-client.readthedocs.io/en/latest/wrapperkernels.html): + +> Now create a JSON kernel spec file and install it using + ``jupyter kernelspec install ``. + Place your kernel module anywhere Python can import it + (try current directory for testing). + +The current list of kernels: + + % jupyter kernelspec list + Available kernels: + python3 /usr/home/sforman/.local/share/jupyter/kernels/python3 + +> Place your kernel module anywhere Python can import it + +Yah, okay. + + sforman@bock:~/src/Joypy/docs/jupyter_kernel % setenv PYTHONPATH `pwd` + +Let's go! + + sforman@bock:~/src/Joypy/docs/jupyter_kernel % jupyter kernelspec install . + [Errno 13] Permission denied: '/usr/local/share/jupyter' + Perhaps you want to install with `sudo` or `--user`? + +Okay + + sforman@bock:~/src/Joypy/docs/jupyter_kernel % jupyter kernelspec install --user . + [InstallKernelSpec] Removing existing kernelspec in /usr/home/sforman/.local/share/jupyter/kernels/. + Traceback (most recent call last): + File "/home/sforman/.local/bin/jupyter-kernelspec", line 8, in + sys.exit(KernelSpecApp.launch_instance()) + File "/home/sforman/.local/lib/python3.7/site-packages/traitlets/config/application.py", line 846, in launch_instance + app.start() + File "/home/sforman/.local/lib/python3.7/site-packages/jupyter_client/kernelspecapp.py", line 323, in start + return self.subapp.start() + File "/home/sforman/.local/lib/python3.7/site-packages/jupyter_client/kernelspecapp.py", line 151, in start + replace=self.replace, + File "/home/sforman/.local/lib/python3.7/site-packages/jupyter_client/kernelspec.py", line 404, in install_kernel_spec + shutil.rmtree(destination) + File "/usr/local/lib/python3.7/shutil.py", line 498, in rmtree + onerror(os.rmdir, path, sys.exc_info()) + File "/usr/local/lib/python3.7/shutil.py", line 496, in rmtree + os.rmdir(path) + OSError: [Errno 22] Invalid argument: '/usr/home/sforman/.local/share/jupyter/kernels/.' + +__Looks at code__ Oh FFS + + cp -Rv /usr/home/sforman/src/Joypy/docs/jupyter_kernel /usr/home/sforman/.local/share/jupyter/kernels/thun + + /usr/home/sforman/src/Joypy/docs/jupyter_kernel -> /usr/home/sforman/.local/share/jupyter/kernels/thun + /usr/home/sforman/src/Joypy/docs/jupyter_kernel/Try out the Joypy Jupyter Kernel.ipynb -> /usr/home/sforman/.local/share/jupyter/kernels/thun/Try out the Joypy Jupyter Kernel.ipynb + /usr/home/sforman/src/Joypy/docs/jupyter_kernel/joy_kernel.py -> /usr/home/sforman/.local/share/jupyter/kernels/thun/joy_kernel.py + /usr/home/sforman/src/Joypy/docs/jupyter_kernel/kernel.json -> /usr/home/sforman/.local/share/jupyter/kernels/thun/kernel.json + +Done. Can start joy kernal notebooks. + + + + ## Table of Contents