convert.py
61 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
Brian E. Granger
|
r4609 | """Code for converting notebooks to and from the v2 format. | ||
Authors: | ||||
* Brian Granger | ||||
Jonathan Frederic
|
r12493 | * Jonathan Frederic | ||
Brian E. Granger
|
r4609 | """ | ||
#----------------------------------------------------------------------------- | ||||
# 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 | ||||
#----------------------------------------------------------------------------- | ||||
Brian E. Granger
|
r4406 | from .nbbase import ( | ||
Brian E. Granger
|
r4511 | new_code_cell, new_text_cell, new_worksheet, new_notebook, new_output | ||
Brian E. Granger
|
r4406 | ) | ||
Brian E. Granger
|
r4609 | #----------------------------------------------------------------------------- | ||
# Code | ||||
#----------------------------------------------------------------------------- | ||||
Jonathan Frederic
|
r12493 | def upgrade(nb, from_version=1): | ||
Brian E. Granger
|
r4609 | """Convert a notebook to the v2 format. | ||
Parameters | ||||
---------- | ||||
nb : NotebookNode | ||||
The Python representation of the notebook to convert. | ||||
orig_version : int | ||||
The original version of the notebook to convert. | ||||
""" | ||||
Brian E. Granger
|
r4406 | if orig_version == 1: | ||
newnb = new_notebook() | ||||
ws = new_worksheet() | ||||
for cell in nb.cells: | ||||
Brian E. Granger
|
r4511 | if cell.cell_type == u'code': | ||
Brian E. Granger
|
r4406 | newcell = new_code_cell(input=cell.get('code'),prompt_number=cell.get('prompt_number')) | ||
Brian E. Granger
|
r4511 | elif cell.cell_type == u'text': | ||
newcell = new_text_cell(u'markdown',source=cell.get('text')) | ||||
Brian E. Granger
|
r4406 | ws.cells.append(newcell) | ||
newnb.worksheets.append(ws) | ||||
return newnb | ||||
else: | ||||
raise ValueError('Cannot convert a notebook from v%s to v2' % orig_version) | ||||
Jonathan Frederic
|
r12493 | |||
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.") | ||||