##// 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:

r18606:776d1fa8
r21455:37a99411
Show More
notebooknode.py
21 lines | 535 B | text/x-python | PythonLexer
"""NotebookNode - adding attribute access to dicts"""
from IPython.utils.ipstruct import Struct
class NotebookNode(Struct):
"""A dict-like node with attribute-access"""
pass
def from_dict(d):
"""Convert dict to dict-like NotebookNode
Recursively converts any dict in the container to a NotebookNode
"""
if isinstance(d, dict):
return NotebookNode({k:from_dict(v) for k,v in d.items()})
elif isinstance(d, (tuple, list)):
return [from_dict(i) for i in d]
else:
return d