##// END OF EJS Templates
Make sure the path exists that the figures are to be written to.
Make sure the path exists that the figures are to be written to.

File last commit:

r11572:2a32f72f
r11629:eff8b360
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
"""
#Loop through all of the datatypes of the outputs in the cell.
for index, cell_out in enumerate(cell.get('outputs', [])):
for data_type, data in cell_out.items():
MinRK
simplify ConvertFiguresTransformer...
r11572 # this must run *before* extract figures,
# 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