##// END OF EJS Templates
Backport PR #6249: always use HTTPS getting mathjax from CDN...
Backport PR #6249: always use HTTPS getting mathjax from CDN Is there any reason not to do this now? closes #6246

File last commit:

r16235:bceec0c0
r17546:f58dabb2
Show More
base.py
93 lines | 2.8 KiB | text/x-python | PythonLexer
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 """Base class for preprocessors"""
Jonathan Frederic
Cleanup and refactor, transformers
r10674
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Matthias BUSSONNIER
move transformer in separate file
r9302
Jonathan Frederic
Rename utils.config to utils.base
r11420 from ..utils.base import NbConvertBase
Jonathan Frederic
Removed ActivatableTransformer and moved enabled key into base.
r11388 from IPython.utils.traitlets import Bool
Matthias BUSSONNIER
create configurable preprocessors
r9307
Jonathan Frederic
Cleanup and refactor, transformers
r10674
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class Preprocessor(NbConvertBase):
""" A configurable preprocessor
Matthias BUSSONNIER
docs
r9528
Inherit from this class if you wish to have configurability for your
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessor.
Matthias BUSSONNIER
docs
r9528
Paul Ivanov
fixup minor typos from search/replace
r12220 Any configurable traitlets this class exposed will be configurable in
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 profiles using c.SubClassName.attribute = value
Matthias BUSSONNIER
docs
r9528
Paul Ivanov
fixup minor typos from search/replace
r12220 you can overwrite :meth:`preprocess_cell` to apply a transformation
independently on each cell or :meth:`preprocess` if you prefer your own
logic. See corresponding docstring for informations.
Jonathan Frederic
Removed ActivatableTransformer and moved enabled key into base.
r11388
Disabled by default and can be enabled via the config by
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 'c.YourPreprocessorName.enabled = True'
Matthias BUSSONNIER
docs
r9528 """
Jonathan Frederic
Generator used to create figure indicies
r10772
Jonathan Frederic
Prefer new style of config passing, parent=self (replaces config=self.config)
r11382 enabled = Bool(False, config=True)
def __init__(self, **kw):
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
Public constructor
Parameters
----------
config : Config
Configuration file structure
**kw : misc
Additional arguments
"""
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 super(Preprocessor, self).__init__(**kw)
Matthias BUSSONNIER
create configurable preprocessors
r9307
Jonathan Frederic
Generator used to create figure indicies
r10772
Jonathan Frederic
Cleanup and refactor, transformers
r10674 def __call__(self, nb, resources):
Jonathan Frederic
Removed ActivatableTransformer and moved enabled key into base.
r11388 if self.enabled:
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 self.log.debug("Applying preprocessor: %s", self.__class__.__name__)
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 return self.preprocess(nb,resources)
Jonathan Frederic
Removed ActivatableTransformer and moved enabled key into base.
r11388 else:
return nb, resources
Matthias BUSSONNIER
do not ask to inherit __call__ but call
r10834
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def preprocess(self, nb, resources):
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
Paul Ivanov
fixup minor typos from search/replace
r12220 Preprocessing to apply on each notebook.
Jonathan Frederic
Cleanup and refactor, transformers
r10674
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 Must return modified nb, resources.
Paul Ivanov
fixup minor typos from search/replace
r12220 If you wish to apply your preprocessing to each cell, you might want
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 to override preprocess_cell method instead.
Jonathan Frederic
Cleanup and refactor, transformers
r10674
Parameters
----------
nb : NotebookNode
Notebook being converted
resources : dictionary
Additional resources used in the conversion process. Allows
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessors to pass variables into the Jinja engine.
Matthias BUSSONNIER
docs
r9528 """
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 for worksheet in nb.worksheets:
for index, cell in enumerate(worksheet.cells):
worksheet.cells[index], resources = self.preprocess_cell(cell, resources, index)
return nb, resources
Matthias BUSSONNIER
create configurable preprocessors
r9307
Matthias BUSSONNIER
docs
r9528
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def preprocess_cell(self, cell, resources, index):
Jonathan Frederic
Cleanup and refactor, transformers
r10674 """
MinRK
Backport PR #5535: fix n^2 performance issue in coalesce_streams preprocessor...
r16235 Override if you want to apply some preprocessing to each cell.
Must return modified cell and resource dictionary.
Jonathan Frederic
Cleanup and refactor, transformers
r10674
Parameters
----------
cell : NotebookNode cell
Notebook cell being processed
resources : dictionary
Additional resources used in the conversion process. Allows
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 preprocessors to pass variables into the Jinja engine.
Jonathan Frederic
Cleanup and refactor, transformers
r10674 index : int
Index of the cell being processed
Matthias BUSSONNIER
create configurable preprocessors
r9307 """
Jonathan Frederic
Post code-review, extended refactor.
r10485
Matthias BUSSONNIER
create configurable preprocessors
r9307 raise NotImplementedError('should be implemented by subclass')
Jonathan Frederic
Cleanup and refactor, transformers
r10674 return cell, resources
Matthias BUSSONNIER
do not ask to inherit __call__ but call
r10834