##// END OF EJS Templates
Merge pull request #3834 from ivanov/nbconvert-better-tests...
Merge pull request #3834 from ivanov/nbconvert-better-tests This PR fixes a few issues with nbconvert tests The code for testing 'ipython nbconvert' prior to this PR did not work as intended, and simply swallowed errors when pandoc wasn't installed, for example. This PR adds a new get_output_error_code utility for easier checking of error (looking at return code as opposed to the contents of stdout for the word 'error'). This new machinery is leveraged when calling nbconvert during tests.

File last commit:

r11638:d5533d5a
r11892:fdb8764a merge
Show More
convertfigures.py
64 lines | 2.2 KiB | text/x-python | PythonLexer
Jonathan Frederic
Added writers and supporting code.
r11367 """Module containing a transformer that converts outputs in the notebook from
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
#-----------------------------------------------------------------------------
MinRK
s/ConfigurableTransformer/Transformer/
r11452 from .base import Transformer
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
#-----------------------------------------------------------------------------
MinRK
s/ConfigurableTransformer/Transformer/
r11452 class ConvertFiguresTransformer(Transformer):
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
"""
super(ConvertFiguresTransformer, self).__init__(**kw)
def convert_figure(self, data_format, data):
raise NotImplementedError()
def transform_cell(self, cell, resources, cell_index):
"""
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', [])):
for data_type, data in 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