notebook.py
32 lines
| 1.1 KiB
| text/x-python
|
PythonLexer
Jonathan Frederic
|
r16847 | """NotebookExporter class""" | ||
Julia Evans
|
r16822 | |||
Julia Evans
|
r16823 | # Copyright (c) IPython Development Team. | ||
Julia Evans
|
r16822 | # Distributed under the terms of the Modified BSD License. | ||
from .exporter import Exporter | ||||
MinRK
|
r18605 | from IPython import nbformat | ||
MinRK
|
r18247 | from IPython.utils.traitlets import Enum | ||
Julia Evans
|
r16822 | |||
class NotebookExporter(Exporter): | ||||
MinRK
|
r18247 | """Exports to an IPython notebook.""" | ||
MinRK
|
r18605 | nbformat_version = Enum(list(nbformat.versions), | ||
MinRK
|
r18247 | default_value=nbformat.current_nbformat, | ||
config=True, | ||||
help="""The nbformat version to write. | ||||
Use this to downgrade notebooks. | ||||
""" | ||||
) | ||||
Julia Evans
|
r16822 | def _file_extension_default(self): | ||
Jessica B. Hamrick
|
r19455 | return '.ipynb' | ||
Julia Evans
|
r16822 | |||
output_mimetype = 'application/json' | ||||
def from_notebook_node(self, nb, resources=None, **kw): | ||||
nb_copy, resources = super(NotebookExporter, self).from_notebook_node(nb, resources, **kw) | ||||
MinRK
|
r18605 | if self.nbformat_version != nb_copy.nbformat: | ||
MinRK
|
r18247 | resources['output_suffix'] = '.v%i' % self.nbformat_version | ||
else: | ||||
resources['output_suffix'] = '.nbconvert' | ||||
output = nbformat.writes(nb_copy, version=self.nbformat_version) | ||||
Julia Evans
|
r16822 | return output, resources | ||