Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

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

Closed
Midnighter opened this Issue · 6 comments

4 participants

@Midnighter

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.

@takluyver
Owner

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

@fperez
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 :)

@bfroehle

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)
@takluyver
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.

@fperez
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.

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

@bfroehle : snap ;-)

@fperez fperez closed this in 688cc09
@ellisonbg ellisonbg referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
@fperez fperez referenced this issue from a commit
Commit has since been removed from the repository and is no longer available.
@mattvonrocketstein mattvonrocketstein referenced this issue from a commit in mattvonrocketstein/ipython
@takluyver 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.