def parameterize_notebook(nb, parameters, report_mode=False):
    """Assigned parameters into the appropriate place in the input notebook

    Parameters
    ----------
    nb : NotebookNode
       Executable notebook object
    parameters : dict
       Arbitrary keyword arguments to pass as notebook parameters
    report_mode : bool, optional
       Flag to set report mode
    """
    # Load from a file if 'parameters' is a string.
    if isinstance(parameters, six.string_types):
        parameters = read_yaml_file(parameters)

    # Copy the nb object to avoid polluting the input
    nb = copy.deepcopy(nb)

    kernel_name = nb.metadata.kernelspec.name
    language = nb.metadata.kernelspec.language

    # Generate parameter content based on the kernel_name
    param_content = translate_parameters(kernel_name, language, parameters)

    newcell = nbformat.v4.new_code_cell(source=param_content)
    newcell.metadata['tags'] = ['injected-parameters']

    if report_mode:
        newcell.metadata['jupyter'] = newcell.get('jupyter', {})
        newcell.metadata['jupyter']['source_hidden'] = True

    param_cell_index = _find_first_tagged_cell_index(nb, 'parameters')
    injected_cell_index = _find_first_tagged_cell_index(nb, 'injected-parameters')
    if injected_cell_index >= 0:
        # Replace the injected cell with a new version
        before = nb.cells[:injected_cell_index]
        after = nb.cells[injected_cell_index + 1 :]
    elif param_cell_index >= 0:
        # Add an injected cell after the parameter cell
        before = nb.cells[: param_cell_index + 1]
        after = nb.cells[param_cell_index + 1 :]
    else:
        # Inject to the top of the notebook
        logger.warning("Input notebook does not contain a cell with tag 'parameters'")
        before = []
        after = nb.cells

    nb.cells = before + [newcell] + after
    nb.metadata.papermill['parameters'] = parameters

    return nb
def parameterize_notebook ( nb , parameters , report_mode = False ) : if isinstance ( parameters , six . string_types ) : parameters = read_yaml_file ( parameters ) nb = copy . deepcopy ( nb ) kernel_name = nb . metadata . kernelspec . name language = nb . metadata . kernelspec . language param_content = translate_parameters ( kernel_name , language , parameters ) newcell = nbformat . v4 . new_code_cell ( source = param_content ) newcell . metadata [ 'tags' ] = [ 'injected-parameters' ] if report_mode : newcell . metadata [ 'jupyter' ] = newcell . get ( 'jupyter' , { } ) newcell . metadata [ 'jupyter' ] [ 'source_hidden' ] = True param_cell_index = _find_first_tagged_cell_index ( nb , 'parameters' ) injected_cell_index = _find_first_tagged_cell_index ( nb , 'injected-parameters' ) if injected_cell_index >= 0 : before = nb . cells [ : injected_cell_index ] after = nb . cells [ injected_cell_index + 1 : ] elif param_cell_index >= 0 : before = nb . cells [ : param_cell_index + 1 ] after = nb . cells [ param_cell_index + 1 : ] else : logger . warning ( "Input notebook does not contain a cell with tag 'parameters'" ) before = [ ] after = nb . cells nb . cells = before + [ newcell ] + after nb . metadata . papermill [ 'parameters' ] = parameters return nb
Assigned parameters into the appropriate place in the input notebook

    Parameters
    ----------
    nb : NotebookNode
       Executable notebook object
    parameters : dict
       Arbitrary keyword arguments to pass as notebook parameters
    report_mode : bool, optional
       Flag to set report mode