##// END OF EJS Templates
Reverse hscrollbar min-height hack on OS X...
Reverse hscrollbar min-height hack on OS X OS X has optional behavior to only draw scrollbars during scroll, which causes problems for CodeMirror's scrollbars. CodeMirror's solution is to set a minimum size for their scrollbars, which is always present. The trade is that the container overlays most of the last line, swallowing click events when there is scrolling to do, even when no scrollbar is visible. This reverses the trade, recovering the click events at the expense of never showing the horizontal scrollbar on OS X when this option is enabled.

File last commit:

r18603:cd1bfb05
r20298:2907e856
Show More
reader.py
82 lines | 2.0 KiB | text/x-python | PythonLexer
MinRK
update nbformat.current to v4
r18579 """API for reading notebooks of different versions"""
Jonathan Frederic
Notebook version conversions done right?
r12493
MinRK
update nbformat.current to v4
r18579 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Jonathan Frederic
Notebook version conversions done right?
r12493
import json
class NotJSONError(ValueError):
pass
def parse_json(s, **kwargs):
"""Parse a JSON string into a dict."""
try:
nb_dict = json.loads(s, **kwargs)
except ValueError:
Jonathan Frederic
Updated JSON error message to limit full error to 80 characters....
r12975 # Limit the error message to 80 characters. Display whatever JSON will fit.
raise NotJSONError(("Notebook does not appear to be JSON: %r" % s)[:77] + "...")
Jonathan Frederic
Notebook version conversions done right?
r12493 return nb_dict
# High level API
def get_version(nb):
"""Get the version of a notebook.
Parameters
----------
nb : dict
NotebookNode or dict containing notebook data.
Returns
-------
Tuple containing major (int) and minor (int) version numbers
"""
major = nb.get('nbformat', 1)
minor = nb.get('nbformat_minor', 0)
return (major, minor)
Jonathan Frederic
Some small fixes and changes of nb version conversion
r12755 def reads(s, **kwargs):
"""Read a notebook from a json string and return the
Jonathan Frederic
Notebook version conversions done right?
r12493 NotebookNode object.
This function properly reads notebooks of any version. No version
conversion is performed.
Parameters
----------
s : unicode
The raw unicode string to read the notebook from.
Returns
-------
nb : NotebookNode
The notebook that was read.
"""
MinRK
Add top-level IPython.nbformat API...
r18603 from . import versions, NBFormatError
MinRK
add missing NBFormatError import in nbformat.reader.reads...
r17636
Jonathan Frederic
Notebook version conversions done right?
r12493 nb_dict = parse_json(s, **kwargs)
(major, minor) = get_version(nb_dict)
if major in versions:
Jonathan Frederic
Fixes (iptest), simplified v1, v2, .. , vX import code
r12494 return versions[major].to_notebook_json(nb_dict, minor=minor)
Jonathan Frederic
Notebook version conversions done right?
r12493 else:
raise NBFormatError('Unsupported nbformat version %s' % major)
def read(fp, **kwargs):
"""Read a notebook from a file and return the NotebookNode object.
This function properly reads notebooks of any version. No version
conversion is performed.
Parameters
----------
fp : file
Any file-like object with a read method.
Returns
-------
nb : NotebookNode
The notebook that was read.
"""
Jonathan Frederic
Some small fixes and changes of nb version conversion
r12755 return reads(fp.read(), **kwargs)