rics kernel#
Install Jupyter kernel spec for a virtual environment.
Synopsis#
[1]:
!rics kernel --help
Usage: rics kernel [OPTIONS]
Install Jupyter kernel spec for a virtual environment.
Options:
--user / --system Select user [default] or system-wide install.
System install may require elevated privileges.
--name TEXT Explicit display name. [default: (automatic)]
--profile TEXT An IPython profile to be loaded by the kernel.
--prefix TEXT Spec location prefix for non-default locations
such as conda. Mutually exclusive with --user.
The kernel JSON will be located at:
`<prefix>/share/jupyter/kernels/rics.kernel.<slug>/kernel.json`.
-e, --env <TEXT TEXT>... Extra environment variables for the kernel.
Given as [<Key> <Value>]-pairs. Example:
`<cmd> -e OMP_NUM_THREADS 32 -e MY_VAR my_value`
--variant TEXT Install a variant of the kernel, e.g. with extra
environment variables.
-p, --add-package TEXT Packages to install in the kernel. Pass a single
character to disable extra packages, e.g. `-p0`.
[default: jupyterlab-execute-time, jupyterlab-git,
jupyterlab-code-formatter, ipywidgets, black,
isort]
--help Show this message and exit.
Example run#
The purpose of this command is to “just work”. Run without arguments for sane defaults.
[2]:
!rics kernel
Installing KernelSpec(display_name='rics-py3.11 [poetry]', name='rics.jupyter.rics-py3.11', executable='/home/dev/git/rics/.venv/bin/python').
Kernel spec installed: '/home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11'
Customizing the kernel#
The --env flag may be used to specify custom default environment variables for the kernel. Below, we redirect S3 URLs to a local MinIO instance.
We’ve used the -vvv flag to get DEBUG output from the module loggers. Note that this prints the environment variables values as well, so it is technically unsafe. Running with just -v uses the INFO level and does not print sensitive data.
[3]:
%%sh
rics -vvv kernel --variant="Local S3" \
-e AWS_ACCESS_KEY_ID dev-key \
-e AWS_SECRET_ACCESS_KEY dev-secret \
-e AWS_ENDPOINT_URL_S3 http://localhost:9000
2025-05-11T11:21:26.550 [rics.jupyter.VenvHelper.resolve:DEBUG] Resolver order (3): poetry | uv | sys.
2025-05-11T11:21:26.550 [rics.jupyter.VenvHelper.resolve:DEBUG] Resolver 1/3: poetry(): Starting.
2025-05-11T11:21:27.228 [rics.jupyter.VenvHelper.resolve:DEBUG] Resolver 1/3: poetry(): returned result=('/home/dev/git/rics/.venv', '/home/dev/git/rics/.venv/bin/python').
2025-05-11T11:21:27.228 [rics.jupyter.VenvHelper:DEBUG] Reading pyvenv.cfg for manager='poetry': '/home/dev/git/rics/.venv/pyvenv.cfg'.
2025-05-11T11:21:27.228 [rics.jupyter.VenvHelper:DEBUG] Found 9 keys in pyvenv.cfg: ['home', 'implementation', 'version_info', 'virtualenv', 'include-system-site-packages', 'base-prefix', 'base-exec-prefix', 'base-executable', 'prompt'].
Installing KernelSpec(display_name='rics-py3.11 [Local S3]', name='rics.jupyter.rics-py3.11.local-s3', executable='/home/dev/git/rics/.venv/bin/python').
2025-05-11T11:21:27.266 [rics.jupyter:DEBUG] Setting user=True from prefix=None.
2025-05-11T11:21:27.397 [traitlets:INFO] Removing existing kernelspec in /home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3
2025-05-11T11:21:27.398 [traitlets:INFO] Installed kernelspec rics.jupyter.rics-py3.11.local-s3 in /home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3
2025-05-11T11:21:27.398 [rics.jupyter:INFO] Patching kernel 'rics-py3.11' at '/home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3/kernel.json'.
2025-05-11T11:21:27.398 [rics.jupyter:DEBUG] Read kernel spec from path='/home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3/kernel.json':
{'argv': ['/home/dev/git/rics/.venv/bin/python', '-m', 'ipykernel_launcher', '-f', '{connection_file}'], 'display_name': 'rics-py3.11 [Local S3]', 'language': 'python', 'metadata': {'debugger': True}, 'env': {'AWS_ACCESS_KEY_ID': 'dev-key', 'AWS_SECRET_ACCESS_KEY': 'dev-secret', 'AWS_ENDPOINT_URL_S3': 'http://localhost:9000', 'PYDEVD_DISABLE_FILE_VALIDATION': '1'}}
2025-05-11T11:21:27.398 [rics.jupyter:DEBUG] Updating metadata: {'debugger': True}.
2025-05-11T11:21:27.398 [rics.jupyter:DEBUG] Invoking callback: rics.jupyter.cli.write_user_command(KernelSpec).
2025-05-11T11:21:27.398 [rics.jupyter:DEBUG] Writing kernel spec to path='/home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3/kernel.json':
{
"argv": [
"/home/dev/git/rics/.venv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "rics-py3.11 [Local S3]",
"env": {
"AWS_ACCESS_KEY_ID": "dev-key",
"AWS_ENDPOINT_URL_S3": "http://localhost:9000",
"AWS_SECRET_ACCESS_KEY": "dev-secret",
"PYDEVD_DISABLE_FILE_VALIDATION": "1"
},
"language": "python",
"metadata": {
"debugger": true,
"rics.jupyter": {
"created_at": "2025-05-11T11:21:27+00:00",
"created_by": "dev",
"installer": {
"sys.executable": "/home/dev/git/rics/.venv/bin/python",
"sys.version": "3.11.12 (main, Apr 9 2025, 08:55:55) [GCC 13.3.0]",
"user_command": "rics -vvv kernel --variant=Local S3 -e AWS_ACCESS_KEY_ID dev-key -e AWS_SECRET_ACCESS_KEY dev-secret -e AWS_ENDPOINT_URL_S3 http://localhost:9000",
"version": "5.0.1.dev1",
"workdir": "/home/dev/git/rics/notebooks/cli"
},
"variant": "Local S3",
"venv": {
"manager": "poetry",
"pyvenv.cfg": "/home/dev/git/rics/.venv/pyvenv.cfg",
"slug": "rics-py3.11",
"version_info": "3.11.12.final.0"
}
}
}
}
2025-05-11T11:21:27.399 [rics.jupyter:INFO] Installing packages: ['ipykernel', 'jupyterlab-execute-time', 'jupyterlab-git', 'jupyterlab-code-formatter', 'ipywidgets', 'black', 'isort'].
2025-05-11T11:21:27.399 [rics.jupyter:DEBUG] Installing packages: Command: /home/dev/git/rics/.venv/bin/python -q -m pip install --disable-pip-version-check --quiet --require-virtualenv ipykernel jupyterlab-execute-time jupyterlab-git jupyterlab-code-formatter ipywidgets black isort
Kernel spec installed: '/home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3'
The kernel.json file#
See Jupyter kernel documentation for the official kernelspec documentation.
This program adds metadata added under the metadata.'rics.jupyter' key. The values here have no effect at runetime, but are useful for debugging. Below is the original file that was creating by running rics kenrel without any arguments.
[4]:
!pygmentize /home/dev/.local/share/jupyter/kernels/rics.jupyter.rics-py3.11.local-s3/kernel.json
{
"argv": [
"/home/dev/git/rics/.venv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "rics-py3.11 [Local S3]",
"env": {
"AWS_ACCESS_KEY_ID": "dev-key",
"AWS_ENDPOINT_URL_S3": "http://localhost:9000",
"AWS_SECRET_ACCESS_KEY": "dev-secret",
"PYDEVD_DISABLE_FILE_VALIDATION": "1"
},
"language": "python",
"metadata": {
"debugger": true,
"rics.jupyter": {
"created_at": "2025-05-11T11:21:27+00:00",
"created_by": "dev",
"installer": {
"sys.executable": "/home/dev/git/rics/.venv/bin/python",
"sys.version": "3.11.12 (main, Apr 9 2025, 08:55:55) [GCC 13.3.0]",
"user_command": "rics -vvv kernel --variant=Local S3 -e AWS_ACCESS_KEY_ID dev-key -e AWS_SECRET_ACCESS_KEY dev-secret -e AWS_ENDPOINT_URL_S3 http://localhost:9000",
"version": "5.0.1.dev1",
"workdir": "/home/dev/git/rics/notebooks/cli"
},
"variant": "Local S3",
"venv": {
"manager": "poetry",
"pyvenv.cfg": "/home/dev/git/rics/.venv/pyvenv.cfg",
"slug": "rics-py3.11",
"version_info": "3.11.12.final.0"
}
}
}
}
[ ]: