def _find_parameters_index(nb): parameters_indices = [] for idx, cell in enumerate(nb.cells): if "parameters" in cell.metadata.tags: parameters_indices.append(idx) if not parameters_indices: raise PapermillException("No parameters tag found") elif len(parameters_indices) > 1: raise PapermillException("Multiple parameters tags found") return parameters_indices[0]
def display_output(self, name): """Display the output from this notebook in the running notebook.""" outputs = _get_notebook_outputs(self.node) if name not in outputs: raise PapermillException( "Output Name '%s' is not available in this notebook.") output = outputs[name] ip_display(output.data, metadata=output.metadata, raw=True)
def _build_parameter_code(kernel_name, parameters): kernelspec = get_kernel_spec(kernel_name) if kernel_name in _parameter_code_builders: return _parameter_code_builders[kernel_name](parameters) elif kernelspec.language in _parameter_code_builders: return _parameter_code_builders[kernelspec.language](parameters) raise PapermillException( "No parameter builder functions specified for kernel '%s' or language '%s'" % (kernel_name, kernelspec.language))
def __setitem__(self, key, value): # If notebook is a path str then load the notebook. if isinstance(value, string_types): value = read_notebook(value) if not isinstance(value, Notebook): raise PapermillException( "Value must either be a path string or a Papermill Notebook object. Found: '%s'" % str(type(value))) self._notebooks[key] = value
def read_notebook(path): """ Returns a Notebook object loaded from the location specified at 'path'. Args: path (str): Path to notebook ".ipynb" file. Returns: A Notebook object. """ if not path.endswith(".ipynb"): raise PapermillException( "Notebooks should have an '.ipynb' file extension. Provided path: '%s'", path) nb = Notebook() nb.path = path nb.node = load_notebook_node(path) return nb