convertfigures.py
58 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
Paul Ivanov
|
r12219 | """Module containing a preprocessor that converts outputs in the notebook from | ||
Jonathan Frederic
|
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
|
r12219 | from .base import Preprocessor | ||
Jonathan Frederic
|
r11391 | from IPython.utils.traitlets import Unicode | ||
Jonathan Frederic
|
r11367 | |||
#----------------------------------------------------------------------------- | ||||
# Classes | ||||
#----------------------------------------------------------------------------- | ||||
Paul Ivanov
|
r12219 | class ConvertFiguresPreprocessor(Preprocessor): | ||
Jonathan Frederic
|
r11367 | """ | ||
Converts all of the outputs in a notebook from one format to another. | ||||
""" | ||||
Jonathan Frederic
|
r11391 | from_format = Unicode(config=True, help='Format the converter accepts') | ||
to_format = Unicode(config=True, help='Format the converter writes') | ||||
Jonathan Frederic
|
r11367 | |||
Jonathan Frederic
|
r11391 | def __init__(self, **kw): | ||
Jonathan Frederic
|
r11367 | """ | ||
Public constructor | ||||
""" | ||||
Paul Ivanov
|
r12219 | super(ConvertFiguresPreprocessor, self).__init__(**kw) | ||
Jonathan Frederic
|
r11367 | |||
def convert_figure(self, data_format, data): | ||||
raise NotImplementedError() | ||||
Paul Ivanov
|
r12219 | def preprocess_cell(self, cell, resources, cell_index): | ||
Jonathan Frederic
|
r11367 | """ | ||
Apply a transformation on each cell, | ||||
See base.py | ||||
""" | ||||
Jonathan Frederic
|
r11638 | # Loop through all of the datatypes of the outputs in the cell. | ||
Thomas Kluyver
|
r19051 | for output in cell.get('outputs', []): | ||
if output.output_type in {'execute_result', 'display_data'} \ | ||||
and self.from_format in output.data \ | ||||
and self.to_format not in output.data: | ||||
Jonathan Frederic
|
r11367 | |||
Thomas Kluyver
|
r19051 | output.data[self.to_format] = self.convert_figure( | ||
self.from_format, output.data[self.from_format]) | ||||
Jonathan Frederic
|
r11367 | |||
Thomas Kluyver
|
r19051 | return cell, resources | ||