Skip to content
This repository

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

Closed
Midnighter opened this Issue December 15, 2011 · 6 comments

4 participants

Moritz Emanuel Beber Fernando Perez Thomas Kluyver 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
Collaborator

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
Collaborator

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
Collaborator

@bfroehle : snap ;-)

Fernando Perez fperez closed this in 688cc09 December 15, 2011
Brian E. Granger ellisonbg referenced this issue from a commit January 10, 2012
Commit has since been removed from the repository and is no longer available.
Fernando Perez fperez referenced this issue from a commit January 10, 2012
Commit has since been removed from the repository and is no longer available.
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.