Show More
@@ -146,8 +146,9 b' class FileNotebookManager(NotebookManager):' | |||||
146 | try: |
|
146 | try: | |
147 | # v1 and v2 and json in the .ipynb files. |
|
147 | # v1 and v2 and json in the .ipynb files. | |
148 | nb = current.reads(s, u'json') |
|
148 | nb = current.reads(s, u'json') | |
149 |
except |
|
149 | except ValueError as e: | |
150 |
|
|
150 | msg = u"Unreadable Notebook: %s" % e | |
|
151 | raise web.HTTPError(400, msg, reason=msg) | |||
151 | return last_modified, nb |
|
152 | return last_modified, nb | |
152 |
|
153 | |||
153 | def read_notebook_object(self, notebook_id): |
|
154 | def read_notebook_object(self, notebook_id): |
@@ -1794,20 +1794,20 b' var IPython = (function (IPython) {' | |||||
1794 | * @param {String} errorThrow HTTP error message |
|
1794 | * @param {String} errorThrow HTTP error message | |
1795 | */ |
|
1795 | */ | |
1796 | Notebook.prototype.load_notebook_error = function (xhr, textStatus, errorThrow) { |
|
1796 | Notebook.prototype.load_notebook_error = function (xhr, textStatus, errorThrow) { | |
1797 |
if (xhr.status === |
|
1797 | if (xhr.status === 400) { | |
1798 | var msg = "An error occurred while loading this notebook. Most likely " + |
|
1798 | var msg = errorThrow; | |
1799 | "this notebook is in a newer format than is supported by this " + |
|
1799 | } else if (xhr.status === 500) { | |
1800 | "version of IPython. This version can load notebook formats " + |
|
1800 | var msg = "An unknown error occurred while loading this notebook. " + | |
1801 | "v"+this.nbformat+" or earlier."; |
|
1801 | "This version can load notebook formats " + | |
1802 |
|
1802 | "v" + this.nbformat + " or earlier."; | ||
1803 | IPython.dialog.modal({ |
|
|||
1804 | title: "Error loading notebook", |
|
|||
1805 | body : msg, |
|
|||
1806 | buttons : { |
|
|||
1807 | "OK": {} |
|
|||
1808 | } |
|
|||
1809 | }); |
|
|||
1810 | } |
|
1803 | } | |
|
1804 | IPython.dialog.modal({ | |||
|
1805 | title: "Error loading notebook", | |||
|
1806 | body : msg, | |||
|
1807 | buttons : { | |||
|
1808 | "OK": {} | |||
|
1809 | } | |||
|
1810 | }); | |||
1811 | } |
|
1811 | } | |
1812 |
|
1812 | |||
1813 | /********************* checkpoint-related *********************/ |
|
1813 | /********************* checkpoint-related *********************/ |
@@ -40,14 +40,19 b' current_nbformat = nbformat' | |||||
40 | current_nbformat_minor = nbformat_minor |
|
40 | current_nbformat_minor = nbformat_minor | |
41 |
|
41 | |||
42 |
|
42 | |||
|
43 | class NBFormatError(ValueError): | |||
|
44 | pass | |||
43 |
|
45 | |||
44 |
class N |
|
46 | class NotJSONError(ValueError): | |
45 | pass |
|
47 | pass | |
46 |
|
48 | |||
47 |
|
49 | |||
48 | def parse_json(s, **kwargs): |
|
50 | def parse_json(s, **kwargs): | |
49 | """Parse a string into a (nbformat, dict) tuple.""" |
|
51 | """Parse a string into a (nbformat, dict) tuple.""" | |
50 | d = json.loads(s, **kwargs) |
|
52 | try: | |
|
53 | d = json.loads(s, **kwargs) | |||
|
54 | except ValueError: | |||
|
55 | raise NotJSONError("Notebook does not appear to be JSON: %r" % s[:16]) | |||
51 | nbf = d.get('nbformat', 1) |
|
56 | nbf = d.get('nbformat', 1) | |
52 | nbm = d.get('nbformat_minor', 0) |
|
57 | nbm = d.get('nbformat_minor', 0) | |
53 | return nbf, nbm, d |
|
58 | return nbf, nbm, d | |
@@ -82,7 +87,7 b' def reads_json(s, **kwargs):' | |||||
82 | nb = v3.to_notebook_json(d, **kwargs) |
|
87 | nb = v3.to_notebook_json(d, **kwargs) | |
83 | nb = v3.convert_to_this_nbformat(nb, orig_version=3, orig_minor=minor) |
|
88 | nb = v3.convert_to_this_nbformat(nb, orig_version=3, orig_minor=minor) | |
84 | else: |
|
89 | else: | |
85 | raise NBFormatError('Unsupported JSON nbformat version: %i' % nbf) |
|
90 | raise NBFormatError('Unsupported JSON nbformat version %s (supported version: %i)' % (nbf, 3)) | |
86 | return nb |
|
91 | return nb | |
87 |
|
92 | |||
88 |
|
93 |
General Comments 0
You need to be logged in to leave comments.
Login now