Send parameters/arguments to notebooks via URL query string parameters.
If you want to prepopulate parameters like foo=bar
and baz=1
in a notebook, you can simply encode them in the URL:
https://your.jupyter.server/awsome_notebook.ipynb?foo=bar&baz=1
In the notebook, just include the following:
import ipyparams
The values are now accessible in the ipyparams.params
dictionary.
ipyparams.params['foo'] # returns "bar"
ipyparams.params['baz'] # returns "1"
URL query strings can contain multiple parameters with the same name, such as https://your.jupyter.server/awsome_notebook.ipynb?foo=bar&foo=baz
. The ipyparams.params
dictionary only contains the last value for each name, but you can still access all the "raw" parameters using ipyparams.raw_params
dictionary.
import ipyparams
ipyparams.params['foo'] # returns 'baz'
ipyparams.raw_params['foo'] # returns ['bar', 'baz']
If you try to access a parameter that does not exist, you will simply get None
back.
import ipyparams
ipyparams.params['unicorn'] # returns None
ipyparams.raw_params['unicorn'] # returns None
import ipyparams
ipyparams.notebook_name # returns 'awesome_notebook.ipynb'
import ipyparams
ipyparams.raw_url
# returns https://your.jupyter.server/awsome_notebook.ipynb?foo=bar&baz=1