"""Generic script exporter class for any kernel language""" # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. from .templateexporter import TemplateExporter from IPython.utils.traitlets import Dict class ScriptExporter(TemplateExporter): _exporters = Dict() def _template_file_default(self): return 'script' def from_notebook_node(self, nb, resources=None, **kw): langinfo = nb.metadata.get('language_info', {}) # delegate to custom exporter, if specified exporter_name = langinfo.get('nbconvert_exporter') if exporter_name and exporter_name != 'script': self.log.debug("Loading script exporter: %s", exporter_name) from .export import exporter_map if exporter_name not in self._exporters: Exporter = exporter_map[exporter_name] self._exporters[exporter_name] = Exporter(parent=self) exporter = self._exporters[exporter_name] return exporter.from_notebook_node(nb, resources, **kw) self.file_extension = langinfo.get('file_extension', '.txt') self.output_mimetype = langinfo.get('mimetype', 'text/plain') return super(ScriptExporter, self).from_notebook_node(nb, resources, **kw)