module ipythonhelper.run_notebook
¶
Short summary¶
module pyquickhelper.ipythonhelper.run_notebook
Functions to run notebooks.
Functions¶
function |
truncated documentation |
---|---|
Downloads file corresponding to url stored in cache_urls. |
|
Loads an existing dump. |
|
Proposes a default location to dump results about notebooks execution. |
|
Builds a badge reporting on the notebook coverage. It gives the proportion of run cells. |
|
Executes a list of notebooks. |
|
Checks the list of results and raises an exception if one failed. This is meant to be used in unit tests. |
|
Returns a list of paths to add before running the notebooks for a given a list of modules. |
|
Extracts a list of notebooks and merges with a list of runs dumped by function |
|
Retrieves notebooks in a test folder. |
|
Runs a notebook end to end, it is inspired from module runipy. |
Documentation¶
Functions to run notebooks.
- pyquickhelper.ipythonhelper.run_notebook._cache_url_to_file(cache_urls, folder, fLOG=<function noLOG>)[source]¶
Downloads file corresponding to url stored in cache_urls.
- Parameters:
cache_urls – list of urls
folder – where to store the cached files
fLOG – logging function
- Returns:
dictionary { url: file }
The function detects if the file was already downloaded. In that case, it does not do it a second time.
- pyquickhelper.ipythonhelper.run_notebook._existing_dump(dump)[source]¶
Loads an existing dump.
- Parameters:
dump – filename
- Returns:
- pyquickhelper.ipythonhelper.run_notebook._get_dump_default_path(dump)[source]¶
Proposes a default location to dump results about notebooks execution.
- Parameters:
dump – location of the dump or module.
- Returns:
location of the dump
The result might be equal to the input if dump is already path.
- pyquickhelper.ipythonhelper.run_notebook.badge_notebook_coverage(df, image_name)[source]¶
Builds a badge reporting on the notebook coverage. It gives the proportion of run cells.
- Parameters:
df – output of
notebook_coverage
image_name – image to produce
- Returns:
coverage estimation
The function relies on module Pillow.
- pyquickhelper.ipythonhelper.run_notebook.execute_notebook_list(folder, notebooks, clean_function=None, valid=None, fLOG=<function noLOG>, additional_path=None, deepfLOG=<function noLOG>, kernel_name='python', log_level='30', extended_args=None, cache_urls=None, replacements=None, detailed_log=None, startup_timeout=300)[source]¶
Executes a list of notebooks.
- Parameters:
folder – folder (where to execute the notebook, current folder for the notebook)
notebooks – list of notebooks to execute (or a list of tuple(notebook, code which initializes the notebook))
clean_function – function which transform the code before running it
valid – if not None, valid is a function which returns whether or not the cell should be executed or not, if the function returns None, the execution of the notebooks and skip the execution of the other cells
fLOG – logging function
deepfLOG – logging function used to run the notebook
additional_path – path to add to sys.path before running the notebook
kernel_name – kernel name, it can be None
log_level – Choices: (0, 10, 20, 30=default, 40, 50, ‘DEBUG’, ‘INFO’, ‘WARN’, ‘ERROR’, ‘CRITICAL’)
extended_args – others arguments to pass to the command line (’–KernelManager.autorestar=True’ for example), see Jupyter Notebook Arguments for a full list
cache_urls – list of urls to cache
replacements – additional replacements
detailed_log – detailed log
startup_timeout – wait for this long for the kernel to be ready, see wait_for_ready
- Returns:
dictionary of dictionaries
{ notebook_name: { } }
If isSuccess is False, statistics contains the execution time, output is the exception raised during the execution.
The signature of function
valid_cell
is:def valid_cell(cell): return True or False or None to stop execution of the notebook before this cell
The signature of function
clean_function
is:def clean_function(cell): return new_cell_content
The execution of a notebook might fail because it relies on remote data specified by url. The function downloads the data first and stores it in folder working_dir (must not be None). The url string is replaced by the absolute path to the file.
- pyquickhelper.ipythonhelper.run_notebook.execute_notebook_list_finalize_ut(res, dump=None, fLOG=<function noLOG>)[source]¶
Checks the list of results and raises an exception if one failed. This is meant to be used in unit tests.
- Parameters:
res – output of
execute_notebook_list
dump – if not None, dump the results of the execution in a flat file
fLOG – logging function
The dump relies on pandas and append the results a previous dump. If dump is a module, the function stores the output of the execution in a default location only if the process does not run on travis or appveyor. The default location is something like:
/var/lib/jenkins/workspace/pyquickhelper/pyquickhelper_UT_39_std/_doc/sphinxdoc/source/pyquickhelper/../../_notebook_dumps/notebook.pyquickhelper.txt
- pyquickhelper.ipythonhelper.run_notebook.get_additional_paths(modules)[source]¶
Returns a list of paths to add before running the notebooks for a given a list of modules.
- Returns:
list of paths
- pyquickhelper.ipythonhelper.run_notebook.notebook_coverage(module_or_path, dump=None, too_old=30)[source]¶
Extracts a list of notebooks and merges with a list of runs dumped by function
execute_notebook_list_finalize_ut
.- Parameters:
module_or_path – a module or a path
dump – dump (or None to get the location by default)
too_old – drop executions older than too_old days from now
- Returns:
dataframe
If module_or_path is a module, the function will get a list notebooks assuming it follows the same design as pyquickhelper.
- pyquickhelper.ipythonhelper.run_notebook.retrieve_notebooks_in_folder(folder, posreg='.*[.]ipynb$', negreg=None)[source]¶
Retrieves notebooks in a test folder.
- Parameters:
folder – folder
regex – regular expression
- Returns:
list of found notebooks
- pyquickhelper.ipythonhelper.run_notebook.run_notebook(filename, profile_dir=None, working_dir=None, skip_exceptions=False, outfilename=None, encoding='utf8', additional_path=None, valid=None, clean_function=None, code_init=None, fLOG=<function noLOG>, kernel_name='python', log_level='30', extended_args=None, cache_urls=None, replacements=None, detailed_log=None, startup_timeout=30, raise_exception=False)[source]¶
Runs a notebook end to end, it is inspired from module runipy.
- Parameters:
filename – notebook filename
profile_dir – profile directory
working_dir – working directory
skip_exceptions – skip exceptions
outfilename – if not None, saves the output in this notebook
encoding – encoding for the notebooks
additional_path – additional paths for import
valid – if not None, valid is a function which returns whether or not the cell should be executed or not, if the function returns None, the execution of the notebooks and skip the execution of the other cells
clean_function – function which cleans a cell’s code before executing it (None for None)
code_init – code to run before the execution of the notebook as if it was a cell
fLOG – logging function
kernel_name – kernel name, it can be None
log_level – Choices: (0, 10, 20, 30=default, 40, 50, ‘DEBUG’, ‘INFO’, ‘WARN’, ‘ERROR’, ‘CRITICAL’)
extended_args – others arguments to pass to the command line (’–KernelManager.autorestar=True’ for example), see Jupyter Notebook Arguments for a full list
cache_urls – list of urls to cache
replacements – list of additional replacements, list of tuple
detailed_log – a second function to log more information when executing the notebook, this should be a function with the same signature as
print
or Nonestartup_timeout –
wait for this long for the kernel to be ready, see wait_for_ready
raise_exception – raise an exception if a cell raises one
- Returns:
tuple (statistics, output)
Warning
The function calls basicConfig.
Run a notebook end to end
from pyquickhelper.ipythonhelper import run_notebook run_notebook("source.ipynb", working_dir="temp", outfilename="modified.ipynb", additional_path=["custom_path"] )
The function adds the local variable
theNotebook
with the absolute file name of the notebook. The execution of a notebook might fail because it relies on remote data specified by url. The function downloads the data first and stores it in folder working_dir (must not be None). The url string is replaced by the absolute path to the file.