# Module: `nbconvert.preprocessors.base`

Base class for preprocessors

## 1 Class

class `IPython.nbconvert.preprocessors.base.``Preprocessor`(**kw)

  Bases: `IPython.nbconvert.utils.base.NbConvertBase`

  A configurable preprocessor

  Inherit from this class if you wish to have configurability for your preprocessor.

  Any configurable traitlets this class exposed will be configurable in profiles using c.SubClassName.attribute = value

  you can overwrite `preprocess_cell()` to apply a transformation independently on each cell or `preprocess()` if you prefer your own logic. See corresponding docstring for informations.

  Disabled by default and can be enabled via the config by
    ‘c.YourPreprocessorName.enabled = True’
  `__init__`(**kw)

    Public constructor

    Parameters:

    config : Config

    > Configuration file structure

    **kw : misc

    > Additional arguments

  `preprocess`(nb, resources)

    Preprocessing to apply on each notebook.

    Must return modified nb, resources.

    If you wish to apply your preprocessing to each cell, you might want to override preprocess_cell method instead.

    Parameters:

    nb : NotebookNode

    > Notebook being converted

    resources : dictionary

    > Additional resources used in the conversion process. Allows preprocessors to pass variables into the Jinja engine.

  `preprocess_cell`(cell, resources, index)

    Override if you want to apply some preprocessing to each cell. Must return modified cell and resource dictionary.

    Parameters:

    cell : NotebookNode cell

    > Notebook cell being processed

    resources : dictionary

    > Additional resources used in the conversion process. Allows preprocessors to pass variables into the Jinja engine.

    index : int

    > Index of the cell being processed