|
|
"""The basic dict based notebook format."""
|
|
|
|
|
|
import uuid
|
|
|
|
|
|
|
|
|
def new_code_cell(input=None, prompt_number=None, output_text=None, output_png=None,
|
|
|
output_html=None, output_svg=None, output_latex=None, output_json=None,
|
|
|
output_javascript=None):
|
|
|
"""Create a new code cell with input and output"""
|
|
|
cell = {}
|
|
|
cell['cell_type'] = 'code'
|
|
|
if input is not None:
|
|
|
cell['input'] = unicode(input)
|
|
|
if prompt_number is not None:
|
|
|
cell['prompt_number'] = int(prompt_number)
|
|
|
|
|
|
output = {}
|
|
|
if output_text is not None:
|
|
|
output['text/plain'] = unicode(output_text)
|
|
|
if output_png is not None:
|
|
|
output['image/png'] = bytes(output_png)
|
|
|
if output_html is not None:
|
|
|
output['text/html'] = unicode(output_html)
|
|
|
if output_svg is not None:
|
|
|
output['image/svg+xml'] = unicode(output_svg)
|
|
|
if output_latex is not None:
|
|
|
output['text/latex'] = unicode(output_latex)
|
|
|
if output_json is not None:
|
|
|
output['application/json'] = unicode(output_json)
|
|
|
if output_javascript is not None:
|
|
|
output['application/javascript'] = unicode(output_javascript)
|
|
|
|
|
|
cell['output'] = output
|
|
|
return cell
|
|
|
|
|
|
|
|
|
def new_text_cell(text=None):
|
|
|
"""Create a new text cell."""
|
|
|
cell = {}
|
|
|
if text is not None:
|
|
|
cell['text'] = unicode(text)
|
|
|
cell['cell_type'] = 'text'
|
|
|
return cell
|
|
|
|
|
|
|
|
|
def new_worksheet(name=None, cells=None):
|
|
|
"""Create a worksheet by name with with a list of cells."""
|
|
|
ws = {}
|
|
|
if name is not None:
|
|
|
ws['name'] = unicode(name)
|
|
|
else:
|
|
|
ws['name'] = u''
|
|
|
if cells is None:
|
|
|
ws['cells'] = []
|
|
|
else:
|
|
|
ws['cells'] = list(cells)
|
|
|
return ws
|
|
|
|
|
|
|
|
|
def new_notebook(name=None, id=None, worksheets=None):
|
|
|
"""Create a notebook by name, id and a list of worksheets."""
|
|
|
nb = {}
|
|
|
if name is not None:
|
|
|
nb['name'] = unicode(name)
|
|
|
else:
|
|
|
nb['name'] = u''
|
|
|
if id is None:
|
|
|
nb['id'] = unicode(uuid.uuid4())
|
|
|
else:
|
|
|
nb['id'] = unicode(id)
|
|
|
if worksheets is None:
|
|
|
nb['worksheets'] = []
|
|
|
else:
|
|
|
nb['worksheets'] = list(worksheets)
|
|
|
return nb
|
|
|
|
|
|
|