From 8ec29ff80031d42b6572c809da6f00475e46104f 2013-07-23 05:55:54 From: Jonathan Frederic Date: 2013-07-23 05:55:54 Subject: [PATCH] Move extracted files into their own subdir --- diff --git a/IPython/nbconvert/nbconvertapp.py b/IPython/nbconvert/nbconvertapp.py index 652a1a4..a8adf9a 100755 --- a/IPython/nbconvert/nbconvertapp.py +++ b/IPython/nbconvert/nbconvertapp.py @@ -188,6 +188,7 @@ class NbConvertApp(BaseIPythonApplication): notebook_name = basename[:basename.rfind('.')] resources = {} resources['unique_key'] = notebook_name + resources['output_files_dir'] = '%s_files' % notebook_name #Try to export try: diff --git a/IPython/nbconvert/transformers/extractfigure.py b/IPython/nbconvert/transformers/extractfigure.py index adef378..6abde79 100755 --- a/IPython/nbconvert/transformers/extractfigure.py +++ b/IPython/nbconvert/transformers/extractfigure.py @@ -15,6 +15,7 @@ notebook file. The extracted figures are returned in the 'resources' dictionary import base64 import sys +import os from IPython.utils.traitlets import Unicode from .base import Transformer @@ -50,8 +51,10 @@ class ExtractFigureTransformer(Transformer): """ #Get the unique key from the resource dict if it exists. If it does not - #exist, use 'figure' as the default. + #exist, use 'figure' as the default. Also, get files directory if it + #has been specified unique_key = resources.get('unique_key', 'figure') + output_files_dir = resources.get('output_files_dir', None) #Make sure figures key exists if not 'figures' in resources: @@ -77,7 +80,7 @@ class ExtractFigureTransformer(Transformer): data = data.encode("UTF-8") #Build a figure name - figure_name = self.figure_filename_template.format( + filename = self.figure_filename_template.format( unique_key=unique_key, cell_index=cell_index, index=index, @@ -87,10 +90,12 @@ class ExtractFigureTransformer(Transformer): # cell.outputs[i].svg_filename ... etc (svg in example) # Where # cell.outputs[i].svg contains the data - out[out_type + '_filename'] = figure_name + if output_files_dir is not None: + filename = os.path.join(output_files_dir, filename) + out[out_type + '_filename'] = filename #In the resources, make the figure available via # resources['figures']['filename'] = data - resources['figures'][figure_name] = data + resources['figures'][filename] = data return cell, resources