##// END OF EJS Templates
Cleanup and refactor of API, almost complete....
Cleanup and refactor of API, almost complete. Still need to target exporter.py and convert.py Then one last run-trough.

File last commit:

r10677:e8436603
r10677:e8436603
Show More
convert.py
50 lines | 2.0 KiB | text/x-python | PythonLexer
"""
Module containing easy to use conversion functions.
"""
#-----------------------------------------------------------------------------
# Copyright (c) 2013, the IPython Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
from .exporter import Exporter
from IPython.nbformat.v3.nbbase import NotebookNode
#-----------------------------------------------------------------------------
# Functions
#-----------------------------------------------------------------------------
def export(nb, config=None, transformers=None, filters=None, exporter_type=Exporter):
#Check arguments
if exporter_type is None:
raise TypeError("Exporter is None")
elif not issubclass(exporter_type, Exporter):
raise TypeError("Exporter type does not inherit from Exporter (base)")
if nb is None:
raise TypeError("nb is None")
#Create the exporter
exporter_instance = exporter_type(preprocessors=transformers, jinja_filters=filters, config=config)
#Try to convert the notebook using the appropriate conversion function.
if isinstance(nb, NotebookNode):
output, resources = exporter_instance.from_notebook_node(nb)
elif isinstance(nb, basestring):
output, resources = exporter_instance.from_filename(nb)
else:
output, resources = exporter_instance.from_file(nb)
return output, resources, exporter_instance
def load_class(template_name):
class_name = template_name[0].upper() + template_name[1:] + "Exporter"
module = __import__('nbconvert.api.' + template_name, fromlist=[class_name])
return getattr(module, class_name)
def export_by_name(nb, template_name, config=None, transformers=None, filters=None):
return export(nb, config, transformers, filters, load_class(template_name))