From dfaefbe337842985a15f6ca1151629c9600efcb1 2013-08-07 04:28:50 From: Min RK Date: 2013-08-07 04:28:50 Subject: [PATCH] Merge pull request #3924 from jdfreder/backport_fixes nbconvert: Backport fixes cherry-picked from #3914 and #3923, which include tests that will not be merged into 1.0. --- diff --git a/IPython/nbconvert/transformers/coalescestreams.py b/IPython/nbconvert/transformers/coalescestreams.py index f1922dc..73be4c5 100644 --- a/IPython/nbconvert/transformers/coalescestreams.py +++ b/IPython/nbconvert/transformers/coalescestreams.py @@ -69,6 +69,7 @@ def coalesce_streams(cell, resources, index): last.text += output.text else: new_outputs.append(output) + last = output cell.outputs = new_outputs return cell, resources diff --git a/IPython/nbconvert/transformers/csshtmlheader.py b/IPython/nbconvert/transformers/csshtmlheader.py index 25dc511..7f33fa9 100755 --- a/IPython/nbconvert/transformers/csshtmlheader.py +++ b/IPython/nbconvert/transformers/csshtmlheader.py @@ -56,7 +56,7 @@ class CSSHTMLHeaderTransformer(Transformer): self._regen_header() - def __call__(self, nb, resources): + def call(self, nb, resources): """Fetch and add CSS to the resource dictionary Fetch CSS from IPython and Pygments to add at the beginning diff --git a/IPython/nbconvert/transformers/extractoutput.py b/IPython/nbconvert/transformers/extractoutput.py index b888c1b..5a0297b 100755 --- a/IPython/nbconvert/transformers/extractoutput.py +++ b/IPython/nbconvert/transformers/extractoutput.py @@ -31,7 +31,7 @@ class ExtractOutputTransformer(Transformer): outputs are returned in the 'resources' dictionary. """ - figure_filename_template = Unicode( + output_filename_template = Unicode( "{unique_key}_{cell_index}_{index}.{extension}", config=True) @@ -51,9 +51,9 @@ class ExtractOutputTransformer(Transformer): """ #Get the unique key from the resource dict if it exists. If it does not - #exist, use 'figure' as the default. Also, get files directory if it + #exist, use 'output' as the default. Also, get files directory if it #has been specified - unique_key = resources.get('unique_key', 'figure') + unique_key = resources.get('unique_key', 'output') output_files_dir = resources.get('output_files_dir', None) #Make sure outputs key exists @@ -79,8 +79,8 @@ class ExtractOutputTransformer(Transformer): else: data = data.encode("UTF-8") - #Build a figure name - filename = self.figure_filename_template.format( + #Build an output name + filename = self.output_filename_template.format( unique_key=unique_key, cell_index=cell_index, index=index, diff --git a/IPython/nbconvert/writers/debug.py b/IPython/nbconvert/writers/debug.py index 51d524d..7a93ace 100644 --- a/IPython/nbconvert/writers/debug.py +++ b/IPython/nbconvert/writers/debug.py @@ -36,7 +36,7 @@ class DebugWriter(WriterBase): if 'outputs' in resources: print("outputs extracted from %s" % notebook_name) print('-' * 80) - pprint.pprint(resources['outputs'], indent=2, width=70) + pprint(resources['outputs'], indent=2, width=70) else: - print("No outputs extracted from %s" % notebook_name) + print("no outputs extracted from %s" % notebook_name) print('=' * 80) diff --git a/IPython/nbconvert/writers/files.py b/IPython/nbconvert/writers/files.py index c3d2656..51d8e9c 100644 --- a/IPython/nbconvert/writers/files.py +++ b/IPython/nbconvert/writers/files.py @@ -48,7 +48,7 @@ class FilesWriter(WriterBase): def _makedir(self, path): """Make a directory if it doesn't already exist""" - if not os.path.isdir(path): + if path and not os.path.isdir(path): self.log.info("Making directory %s", path) os.makedirs(path) @@ -61,8 +61,12 @@ class FilesWriter(WriterBase): See base for more... """ + # Verify that a notebook name is provided. + if notebook_name is None: + raise TypeError('notebook_name') + # Pull the extension and subdir from the resources dict. - output_extension = resources['output_extension'] + output_extension = resources.get('output_extension', None) # Write all of the extracted resources to the destination directory. # NOTE: WE WRITE EVERYTHING AS-IF IT'S BINARY. THE EXTRACT FIG @@ -97,7 +101,10 @@ class FilesWriter(WriterBase): link_or_copy(matching_filename, dest) # Determine where to write conversion results. - dest = notebook_name + '.' + output_extension + if output_extension is not None: + dest = notebook_name + '.' + output_extension + else: + dest = notebook_name if self.build_directory: dest = os.path.join(self.build_directory, dest)