Skip to content

Loading…

Add encoding header to Python files downloaded from notebooks. #1159

Closed
wants to merge 1 commit into from

3 participants

@bfroehle

Closes gh-1156.

@bfroehle

This prevents the encoding header from appearing in the notebook interface. Is this the desired behavior?

@takluyver
IPython member

Snap: PR #1158. ;-)

I'm pretty sure it is the desired behaviour - we execute code as unicode strings, and Python complains if it gets an encoding declaration in a unicode string. But we should remove it consistently (I've done it using the regex from PEP 263).

@fperez
IPython member

Wow, we have dueling PRs! Neat!! BTW, we're on IRC right now if you guys want to jump in..

@bfroehle bfroehle closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Showing with 5 additions and 1 deletion.
  1. +5 −1 IPython/nbformat/v2/nbpy.py
View
6 IPython/nbformat/v2/nbpy.py
@@ -40,6 +40,8 @@ def to_notebook(self, s, **kwargs):
for line in lines:
if line.startswith(u'# <nbformat>'):
pass
+ elif line.startswith(u'# -*-'):
+ pass
elif line.startswith(u'# <codecell>'):
cell = self.new_cell(state, cell_lines)
if cell is not None:
@@ -111,7 +113,9 @@ class PyWriter(NotebookWriter):
def writes(self, nb, **kwargs):
lines = []
- lines.extend([u'# <nbformat>2</nbformat>',''])
+ lines.extend([u'# -*- coding: utf-8 -*-',
+ u'# <nbformat>2</nbformat>',
+ u''])
for ws in nb.worksheets:
for cell in ws.cells:
if cell.cell_type == u'code':
Something went wrong with that request. Please try again.