##// END OF EJS Templates
Merge pull request #1870 from minrk/captureio...
Merge pull request #1870 from minrk/captureio New `%%capture` cell magic captures stdout/err while running a cell. Uses `capture_output()` context manager, moved to utils.io from IPython.parallel testing utilities, where it originated. The caputre objects can be printed as a string, case in which they display the captured stdout, which is also available as `.stdout`. The captured stderr, if any, is in a `.stderr` attribute. A `.show()` method can be called to quickly print both, with stderr being correctly printed to the sys.stderr stream (so the notebook displays it with red highlighting). closes #1863

File last commit:

r4609:a661b7c0
r7411:024e3846 merge
Show More
nbjson.py
54 lines | 1.5 KiB | text/x-python | PythonLexer
"""Read and write notebooks in JSON 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
#-----------------------------------------------------------------------------
from base64 import encodestring
from .rwbase import NotebookReader, NotebookWriter
from .nbbase import from_dict
import json
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
class JSONReader(NotebookReader):
def reads(self, s, **kwargs):
nb = json.loads(s, **kwargs)
return self.to_notebook(nb, **kwargs)
def to_notebook(self, d, **kwargs):
"""Convert from a raw JSON dict to a nested NotebookNode structure."""
return from_dict(d)
class JSONWriter(NotebookWriter):
def writes(self, nb, **kwargs):
kwargs['indent'] = 4
return json.dumps(nb, **kwargs)
_reader = JSONReader()
_writer = JSONWriter()
reads = _reader.reads
read = _reader.read
to_notebook = _reader.to_notebook
write = _writer.write
writes = _writer.writes