##// END OF EJS Templates
Merge pull request #892 from minrk/show...
Merge pull request #892 from minrk/show Allow users to configure whether the inline backend closes figures immediately or not. By default, the inline backend closes all rendered figures, which means that calls like gcf() return no output, but it enables users to create new plots each time without having to call figure() manually. This enables users to configure the inline backend to *not* close on render, behaving more like interactive backends (but requiring manual figure() calls to create new figures).

File last commit:

r4609:a661b7c0
r5123:d2b3a0c6 merge
Show More
nbjson.py
62 lines | 1.7 KiB | text/x-python | PythonLexer
Brian E. Granger
More review changes....
r4609 """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
#-----------------------------------------------------------------------------
Brian E. Granger
Adding nbformat subpackage.
r4392
from base64 import encodestring
Brian E. Granger
Full versioning added to nbformat.
r4406 from .nbbase import from_dict
Brian E. Granger
Initial draft of more formal notebook format....
r4401 from .rwbase import NotebookReader, NotebookWriter, base64_decode
Brian E. Granger
Adding nbformat subpackage.
r4392 import json
Brian E. Granger
More review changes....
r4609 #-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
Brian E. Granger
Adding nbformat subpackage.
r4392
class BytesEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, bytes):
return unicode(encodestring(bytes))
return json.JSONEncoder.default(self, obj)
class JSONReader(NotebookReader):
Brian E. Granger
Initial draft of more formal notebook format....
r4401 def reads(self, s, **kwargs):
Brian E. Granger
Adding nbformat subpackage.
r4392 nb = json.loads(s, **kwargs)
Brian E. Granger
Full versioning added to nbformat.
r4406 nb = self.to_notebook(nb, **kwargs)
Brian E. Granger
Adding nbformat subpackage.
r4392 return nb
Brian E. Granger
Full versioning added to nbformat.
r4406 def to_notebook(self, d, **kwargs):
return base64_decode(from_dict(d))
Brian E. Granger
Adding nbformat subpackage.
r4392
class JSONWriter(NotebookWriter):
Brian E. Granger
Initial draft of more formal notebook format....
r4401 def writes(self, nb, **kwargs):
Brian E. Granger
Adding nbformat subpackage.
r4392 kwargs['cls'] = BytesEncoder
kwargs['indent'] = 4
return json.dumps(nb, **kwargs)
_reader = JSONReader()
_writer = JSONWriter()
reads = _reader.reads
read = _reader.read
Brian E. Granger
Full versioning added to nbformat.
r4406 to_notebook = _reader.to_notebook
Brian E. Granger
Adding nbformat subpackage.
r4392 write = _writer.write
writes = _writer.writes