##// END OF EJS Templates
Backport PR #8196: DEV: Allow supplying jinja vars from python config....
Backport PR #8196: DEV: Allow supplying jinja vars from python config. This PR allows the user to specify a dictionary of values to `NotebookApp.jinja_template_vars` whose values are made available in the jinja templating environment. This is primarily useful in conjunction with the `get_body_data` javascript function to allow programmatic access to Python-specified values from Javascript. An example of where this is useful is when you want to use different constants in Javascript based on a deployment environment; this allows you to write code in your ipython_notebook_config that looks like: ``` env = os.environ['DEPLOYMENT_ENV'] if env == 'DEV': template_vars = dev_template_vars ...

File last commit:

r16707:98d54694
r21455:37a99411
Show More
convert.py
61 lines | 2.0 KiB | text/x-python | PythonLexer
"""Code for converting notebooks to and from the v2 format.
Authors:
* Brian Granger
* Jonathan Frederic
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2008-2011 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from .nbbase import (
new_code_cell, new_text_cell, new_worksheet, new_notebook, new_output
)
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
def upgrade(nb, from_version=1):
"""Convert a notebook to the v2 format.
Parameters
----------
nb : NotebookNode
The Python representation of the notebook to convert.
from_version : int
The version of the notebook to convert from.
"""
if from_version == 1:
newnb = new_notebook()
ws = new_worksheet()
for cell in nb.cells:
if cell.cell_type == u'code':
newcell = new_code_cell(input=cell.get('code'),prompt_number=cell.get('prompt_number'))
elif cell.cell_type == u'text':
newcell = new_text_cell(u'markdown',source=cell.get('text'))
ws.cells.append(newcell)
newnb.worksheets.append(ws)
return newnb
else:
raise ValueError('Cannot convert a notebook from v%s to v2' % from_version)
def downgrade(nb):
"""Convert a v2 notebook to v1.
Parameters
----------
nb : NotebookNode
The Python representation of the notebook to convert.
"""
raise Exception("Downgrade from notebook v2 to v1 is not supported.")