Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Notebooks downloaded as Python files require a header stating the encoding #1156

Closed
Midnighter opened this Issue · 6 comments

4 participants

Moritz Emanuel Beber Thomas Kluyver Fernando Perez Bradley M. Froehle
Moritz Emanuel Beber

The following problem occurred: I have a notebook with a mardown cell that contains non-ASCII characters. When I try to run the file I get the following error:

SyntaxError: Non-ASCII character '\xc3' in file bla.py on line 11, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

even though the offending character is commented.

Putting something like # -*- coding: utf-8 -*- in the first or second line of the file solves the problem, I think this should be standard procedure for exporting the notebook.

Thomas Kluyver
Owner

Yes, we already add this when using the %save magic, we should do it for the notebook as well.

Fernando Perez
Owner

Actually I'd say this is a blocker on 0.12, b/c this simple line missing will make it much harder to use the nb. Plus, it's really easy to fix :)

Bradley M. Froehle
Collaborator

This is also going to require some additional code on the read side as Python's implementation of JSON doesn't support comments as far as I can tell.

In [7]: import json

In [8]: print A
# -*- coding: utf-8 -*-
{"testing": "comments"}

In [9]: json.loads(A)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Thomas Kluyver
Owner

We don't want to do it with the JSON - that's assumed to be UTF-8 encoded. This is about making .py files from the notebooks.

Fernando Perez
Owner

@bfroehle, believe it or not, it's the JSON spec that doesn't support comments, period. Fortunately in this case, the issue is about what we wrtie to disk on .py files, as @takluyver points out, so we don't need to worry about JSON for this issue.

Thomas Kluyver takluyver referenced this issue from a commit in takluyver/ipython
Thomas Kluyver takluyver Add coding header when notebook exported to .py file.
Closes gh-1156
1e80cee
Thomas Kluyver
Owner

@bfroehle : snap ;-)

Fernando Perez fperez closed this in 688cc09
Brian E. Granger ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
Fernando Perez fperez referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
matthew von rocketstein mattvonrocketstein referenced this issue from a commit in mattvonrocketstein/ipython
Thomas Kluyver takluyver Add coding header when notebook exported to .py file.
Closes gh-1156
fb7e244
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.