##// END OF EJS Templates
Merge pull request #1480 from minrk/npmagic...
Merge pull request #1480 from minrk/npmagic Fix %notebook magic, etc. nbformat unicode tests and fixes. * json.writes always gives unicode, so that `current.writes` can be trusted to give the same interface * setup base TestCase for nbformat tests, to consolidate code, and better test both file formats * add tests for reading/writing to files * allow `name` as kwarg to new_notebook to avoid unnecessary breakage of previous API. * remove fallback to xml, which would hide corrupt notebook files behind a nonsensical 'xml unsupported' message. Closes #1545, #1487.

File last commit:

r6061:cddb82ef
r6479:c4cf9403 merge
Show More
convert.py
51 lines | 1.6 KiB | text/x-python | PythonLexer
Brian E. Granger
More review changes....
r4609 """Code for converting notebooks to and from the v2 format.
Authors:
* Brian Granger
"""
#-----------------------------------------------------------------------------
# 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
Full versioning added to nbformat.
r4406 from .nbbase import (
Brian E. Granger
Markdown cells are now saved and restored in notebooks.
r4511 new_code_cell, new_text_cell, new_worksheet, new_notebook, new_output
Brian E. Granger
Full versioning added to nbformat.
r4406 )
Brian Granger
More work updating nbformat....
r6026 from IPython.nbformat import v2
Brian E. Granger
More review changes....
r4609 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
Brian Granger
More work updating nbformat....
r6026 def convert_to_this_nbformat(nb, orig_version=2):
Brian Granger
Fixing minor issues with nbformat....
r6048 """Convert a notebook to the v3 format.
Brian E. Granger
More review changes....
r4609
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
Full versioning added to nbformat.
r4406 if orig_version == 1:
Brian Granger
More work updating nbformat....
r6026 nb = v2.convert_to_this_nbformat(nb)
orig_version = 2
if orig_version == 2:
Brian Granger
Proper error handling for nbformat versions in client code....
r6061 # Mark the original nbformat so consumers know it has been converted.
nb.nbformat = 3
nb.orig_nbformat = 2
Brian Granger
More work updating nbformat....
r6026 return nb
elif orig_version == 3:
return nb
Brian E. Granger
Full versioning added to nbformat.
r4406 else:
Brian Granger
More work updating nbformat....
r6026 raise ValueError('Cannot convert a notebook from v%s to v3' % orig_version)
Brian E. Granger
Full versioning added to nbformat.
r4406