##// END OF EJS Templates
Crop if no endtag is given
Crop if no endtag is given

File last commit:

r13397:7bc66e8a
r15053:0ea80c0b
Show More
convertfigures.py
64 lines | 2.3 KiB | text/x-python | PythonLexer
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 """Module containing a preprocessor that converts outputs in the notebook from
Jonathan Frederic
Added writers and supporting code.
r11367 one format to another.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 from .base import Preprocessor
Jonathan Frederic
To and from formats are now configurable
r11391 from IPython.utils.traitlets import Unicode
Jonathan Frederic
Added writers and supporting code.
r11367
#-----------------------------------------------------------------------------
# Classes
#-----------------------------------------------------------------------------
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 class ConvertFiguresPreprocessor(Preprocessor):
Jonathan Frederic
Added writers and supporting code.
r11367 """
Converts all of the outputs in a notebook from one format to another.
"""
Jonathan Frederic
To and from formats are now configurable
r11391 from_format = Unicode(config=True, help='Format the converter accepts')
to_format = Unicode(config=True, help='Format the converter writes')
Jonathan Frederic
Added writers and supporting code.
r11367
Jonathan Frederic
To and from formats are now configurable
r11391 def __init__(self, **kw):
Jonathan Frederic
Added writers and supporting code.
r11367 """
Public constructor
"""
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 super(ConvertFiguresPreprocessor, self).__init__(**kw)
Jonathan Frederic
Added writers and supporting code.
r11367
def convert_figure(self, data_format, data):
raise NotImplementedError()
Paul Ivanov
replace 'transformer' with 'preprocessor'
r12219 def preprocess_cell(self, cell, resources, cell_index):
Jonathan Frederic
Added writers and supporting code.
r11367 """
Apply a transformation on each cell,
See base.py
"""
Jonathan Frederic
Renamed remaining `figures` strings
r11638 # Loop through all of the datatypes of the outputs in the cell.
Jonathan Frederic
Added writers and supporting code.
r11367 for index, cell_out in enumerate(cell.get('outputs', [])):
Thomas Kluyver
Fixes for nbconvert under Python 3
r13397 for data_type, data in list(cell_out.items()):
Jonathan Frederic
Renamed remaining `figures` strings
r11638 # this must run *before* extract outputs,
MinRK
simplify ConvertFiguresTransformer...
r11572 # so figure_name and filename do not exist
self._convert_figure(cell_out, resources, data_type, data)
Jonathan Frederic
Added writers and supporting code.
r11367 return cell, resources
MinRK
simplify ConvertFiguresTransformer...
r11572 def _convert_figure(self, cell_out, resources, data_type, data):
Jonathan Frederic
Added writers and supporting code.
r11367 """
Convert a figure and output the results to the cell output
"""
MinRK
simplify ConvertFiguresTransformer...
r11572 if not self.to_format in cell_out and data_type == self.from_format:
data = self.convert_figure(data_type, data)
cell_out[self.to_format] = data