Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/nbconvert/exporters/notebook.py: 53%
19 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-07-01 06:54 +0000
1"""NotebookExporter class"""
3# Copyright (c) IPython Development Team.
4# Distributed under the terms of the Modified BSD License.
6import nbformat
7from traitlets import Enum, default
9from .exporter import Exporter
12class NotebookExporter(Exporter):
13 """Exports to an IPython notebook.
15 This is useful when you want to use nbconvert's preprocessors to operate on
16 a notebook (e.g. to execute it) and then write it back to a notebook file.
17 """
19 nbformat_version = Enum(
20 list(nbformat.versions),
21 default_value=nbformat.current_nbformat,
22 help="""The nbformat version to write.
23 Use this to downgrade notebooks.
24 """,
25 ).tag(config=True)
27 @default("file_extension")
28 def _file_extension_default(self):
29 return ".ipynb"
31 output_mimetype = "application/json"
32 export_from_notebook = "Notebook"
34 def from_notebook_node(self, nb, resources=None, **kw):
35 """Convert from notebook node."""
36 nb_copy, resources = super().from_notebook_node(nb, resources, **kw)
37 if self.nbformat_version != nb_copy.nbformat:
38 resources["output_suffix"] = ".v%i" % self.nbformat_version
39 else:
40 resources["output_suffix"] = ".nbconvert"
41 output = nbformat.writes(nb_copy, version=self.nbformat_version)
42 if not output.endswith("\n"):
43 output = output + "\n"
44 return output, resources