Package: jupyterlite-repl-prerun
jupyterlite-repl-prerunJupyterlite extension to allow code to be pre-run in the repl appRequirementsJupyterLab >= 3.0InstallTo install the extension, execute:pipinstalljupyterlite_repl_prerunUsageJupyterLite allows you toembed a live REPLin a webpage. This extension allows you to specify code that should be pre-run in the REPL using theprerunURL parameter. For example, when using thepyodidekernel, you can use this extension to install a package not included by default inpyodideor to set configuration variables.Example:<iframesrc="https://jupyterlite-repl-prerun.rtfd.io/en/latest/lite/repl/index.html?kernel=python&prerun=import%20numpy%20as%20np&prerun-code=print(np.pi)"width="100%"height="100%"></iframe>To launch this example, click the JupyterLite badge at the top of this page.Note that if you also want to include code to be displayed and run in the REPL, you can use theprerun-codeURL parameter. For example, the URL above will pre-run the code to importnumpyand then display and run the code to printpi.prerun-codereplaces the usual JupyterLitecodeparameter, which cannot be combined withprerun.To encode a, potentially multi-line, string in a URL, you can use an onlineURL encoder. Or you can use theurllib.parse.quotefunction in Python. For example, assuming that the code you want to pre-run is in a fileprerun.py, you can use the following command to encode the contents of the file:CODE_FROM_PRERUN_DOT_PY=$(python-c"import urllib.parse; f= open('prerun.py','r'); out= [urllib.parse.quote(line,safe='')+'%0A' for line in f.readlines() if line[0] != '#']; f.close(); print(''.join(out))")Use in your own JupyterLite deploymentYou can add this extension to your own JupyterLite deployment by installing
the extension into the environment you are using to build the JupyterLite
deployment. Look at theJupyterLite documentation on adding extensions.UninstallTo remove the extension, execute:pipuninstalljupyterlite_repl_prerunContributingDevelopment installNote: You will need NodeJS to build the extension package.Thejlpmcommand is JupyterLab's pinned version ofyarnthat is installed with JupyterLab. You may useyarnornpmin lieu ofjlpmbelow.# Clone the repo to your local environment# Change directory to the jupyterlite_repl_prerun directory# Install package in development modepipinstall-e"."# Link your development version of the extension with JupyterLabjupyterlabextensiondevelop.--overwrite# Rebuild extension Typescript source after making changesjlpmbuildYou can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.# Watch the source directory in one terminal, automatically rebuilding when neededjlpmwatch# Run JupyterLab in another terminaljupyterlabWith the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).By default, thejlpm buildcommand generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:jupyterlabbuild--minimize=FalseDevelopment uninstallpipuninstalljupyterlite_repl_prerunIn development mode, you will also need to remove the symlink created byjupyter labextension developcommand. To find its location, you can runjupyter labextension listto figure out where thelabextensionsfolder is located. Then you can remove the symlink namedjupyterlite-repl-prerunwithin that folder.Packaging the extensionSeeRELEASE