##// END OF EJS Templates
unicode-related fixes in rwbase, nbformat tests
MinRK -
Show More
@@ -19,7 +19,9 b' Authors:'
19 from base64 import encodestring, decodestring
19 from base64 import encodestring, decodestring
20 import pprint
20 import pprint
21
21
22 from IPython.utils.py3compat import str_to_bytes
22 from IPython.utils import py3compat
23
24 str_to_bytes = py3compat.str_to_bytes
23
25
24 #-----------------------------------------------------------------------------
26 #-----------------------------------------------------------------------------
25 # Code
27 # Code
@@ -147,7 +149,10 b' class NotebookReader(object):'
147
149
148 def read(self, fp, **kwargs):
150 def read(self, fp, **kwargs):
149 """Read a notebook from a file like object"""
151 """Read a notebook from a file like object"""
150 return self.read(fp.read(), **kwargs)
152 nbs = fp.read()
153 if not py3compat.PY3 and not isinstance(nbs, unicode):
154 nbs = py3compat.str_to_unicode(nbs)
155 return self.reads(nbs, **kwargs)
151
156
152
157
153 class NotebookWriter(object):
158 class NotebookWriter(object):
@@ -159,7 +164,11 b' class NotebookWriter(object):'
159
164
160 def write(self, nb, fp, **kwargs):
165 def write(self, nb, fp, **kwargs):
161 """Write a notebook to a file like object"""
166 """Write a notebook to a file like object"""
162 return fp.write(self.writes(nb,**kwargs))
167 nbs = self.writes(nb,**kwargs)
168 if not py3compat.PY3 and not isinstance(nbs, unicode):
169 # this branch is likely only taken for JSON on Python 2
170 nbs = py3compat.str_to_unicode(nbs)
171 return fp.write(nbs)
163
172
164
173
165
174
@@ -1,3 +1,5 b''
1 # -*- coding: utf-8 -*-
2
1 import os
3 import os
2 from base64 import encodestring
4 from base64 import encodestring
3
5
@@ -49,7 +51,7 b' ws.cells.append(new_code_cell('
49 ))
51 ))
50
52
51 ws.cells.append(new_code_cell(
53 ws.cells.append(new_code_cell(
52 input='print a',
54 input=u'print "ünîcødé"',
53 prompt_number=3,
55 prompt_number=3,
54 collapsed=False,
56 collapsed=False,
55 outputs=[new_output(
57 outputs=[new_output(
@@ -91,7 +93,7 b' nb0 = new_notebook('
91 metadata=md
93 metadata=md
92 )
94 )
93
95
94 nb0_py = """# -*- coding: utf-8 -*-
96 nb0_py = u"""# -*- coding: utf-8 -*-
95 # <nbformat>%i</nbformat>
97 # <nbformat>%i</nbformat>
96
98
97 # <htmlcell>
99 # <htmlcell>
@@ -120,7 +122,7 b' a = numpy.random.rand(100)'
120
122
121 # <codecell>
123 # <codecell>
122
124
123 print a
125 print "ünîcødé"
124
126
125 """ % nbformat
127 """ % nbformat
126
128
General Comments 0
You need to be logged in to leave comments. Login now