def test_coalesce_sequenced_streams(self): """Can the coalesce streams preprocessor merge a sequence of streams?""" outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="0"), nbformat.new_output( output_type="stream", stream="stdout", output_text="1"), nbformat.new_output( output_type="stream", stream="stdout", output_text="2"), nbformat.new_output( output_type="stream", stream="stdout", output_text="3"), nbformat.new_output( output_type="stream", stream="stdout", output_text="4"), nbformat.new_output( output_type="stream", stream="stdout", output_text="5"), nbformat.new_output( output_type="stream", stream="stdout", output_text="6"), nbformat.new_output(output_type="stream", stream="stdout", output_text="7")] cells = [nbformat.new_code_cell( input="# None", prompt_number=1, outputs=outputs)] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] nb = nbformat.new_notebook(name="notebook1", worksheets=worksheets) res = self.build_resources() nb, res = coalesce_streams(nb, res) outputs = nb.worksheets[0].cells[0].outputs self.assertEqual(outputs[0].text, u'01234567')
def build_notebook(self): """Build a notebook in memory for use with preprocessor tests""" outputs = [ nbformat.new_output(output_type="stream", stream="stdout", output_text="a"), nbformat.new_output(output_type="text", output_text="b"), nbformat.new_output(output_type="stream", stream="stdout", output_text="c"), nbformat.new_output(output_type="stream", stream="stdout", output_text="d"), nbformat.new_output(output_type="stream", stream="stderr", output_text="e"), nbformat.new_output(output_type="stream", stream="stderr", output_text="f"), nbformat.new_output(output_type="png", output_png='Zw==') ] # g out = nbformat.new_output(output_type="application/pdf") out['application/pdf'] = 'aA==' # h outputs.append(out) cells = [ nbformat.new_code_cell(input="$ e $", prompt_number=1, outputs=outputs), nbformat.new_text_cell('markdown', source="$ e $") ] worksheets = [nbformat.new_worksheet(cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def build_notebook(self): """Build a reveal slides notebook in memory for use with tests. Overrides base in TransformerTestsBase""" outputs = [ nbformat.new_output(output_type="stream", stream="stdout", output_text="a") ] slide_metadata = {'slideshow': {'slide_type': 'slide'}} subslide_metadata = {'slideshow': {'slide_type': 'subslide'}} cells = [ nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs), nbformat.new_text_cell('markdown', source="", metadata=slide_metadata), nbformat.new_code_cell(input="", prompt_number=2, outputs=outputs), nbformat.new_text_cell('markdown', source="", metadata=slide_metadata), nbformat.new_text_cell('markdown', source="", metadata=subslide_metadata) ] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def add_code_cell(self, nb): output = current.new_output("display_data", output_javascript="alert('hi');") cell = current.new_code_cell("print('hi')", outputs=[output]) if not nb.worksheets: nb.worksheets.append(current.new_worksheet()) nb.worksheets[0].cells.append(cell)
def _add_score_output(cell, score, total_score): """Add a new output to the cell reporting the score earned.""" if cell.cell_type != 'code': return output = new_output( 'stream', output_text='Score: {} / {}'.format(score, total_score)) cell.outputs.insert(0, output)
def build_notebook(self): """Build a notebook in memory for use with transformer tests""" outputs = [ nbformat.new_output(output_type="stream", stream="stdout", output_text="a"), nbformat.new_output(output_type="text", output_text="b"), nbformat.new_output(output_type="stream", stream="stdout", output_text="c"), nbformat.new_output(output_type="stream", stream="stdout", output_text="d"), nbformat.new_output(output_type="stream", stream="stderr", output_text="e"), nbformat.new_output(output_type="stream", stream="stderr", output_text="f"), nbformat.new_output(output_type="png", output_png=b'Zw==') ] #g cells = [ nbformat.new_code_cell(input="$ e $", prompt_number=1, outputs=outputs), nbformat.new_text_cell('markdown', source="$ e $") ] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def setUp(self): nbdir = self.notebook_dir.name if not os.path.isdir(pjoin(nbdir, 'foo')): os.mkdir(pjoin(nbdir, 'foo')) nb = new_notebook(name='testnb') ws = new_worksheet() nb.worksheets = [ws] ws.cells.append(new_heading_cell(u'Created by test ³')) cc1 = new_code_cell(input=u'print(2*6)') cc1.outputs.append(new_output(output_text=u'12')) cc1.outputs.append(new_output(output_png=png_green_pixel, output_type='pyout')) ws.cells.append(cc1) with io.open(pjoin(nbdir, 'foo', 'testnb.ipynb'), 'w', encoding='utf-8') as f: write(nb, f, format='ipynb') self.nbconvert_api = NbconvertAPI(self.base_url())
def test_coalesce_replace_streams(self): """Are \\r characters handled?""" outputs = [ nbformat.new_output(output_type="stream", stream="stdout", output_text="z"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\ra"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\nz\rb"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\nz"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\rc\n"), nbformat.new_output(output_type="stream", stream="stdout", output_text="z\rz\rd") ] cells = [ nbformat.new_code_cell(input="# None", prompt_number=1, outputs=outputs) ] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] nb = nbformat.new_notebook(name="notebook1", worksheets=worksheets) res = self.build_resources() nb, res = coalesce_streams(nb, res) outputs = nb.worksheets[0].cells[0].outputs self.assertEqual(outputs[0].text, u'a\nb\nc\nd')
def build_notebook(self): """Build a reveal slides notebook in memory for use with tests. Overrides base in TransformerTestsBase""" outputs = [nbformat.new_output(output_type="svg", output_svg=self.simple_svg)] slide_metadata = {'slideshow' : {'slide_type': 'slide'}} subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}} cells=[nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs)] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def build_notebook(self): """Build a reveal slides notebook in memory for use with tests. Overrides base in PreprocessorTestsBase""" outputs = [nbformat.new_output(output_type="svg", output_svg=self.simple_svg)] slide_metadata = {'slideshow' : {'slide_type': 'slide'}} subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}} cells=[nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs)] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def setUp(self): nbdir = self.notebook_dir.name if not os.path.isdir(pjoin(nbdir, 'foo')): os.mkdir(pjoin(nbdir, 'foo')) nb = new_notebook(name='testnb') ws = new_worksheet() nb.worksheets = [ws] ws.cells.append(new_heading_cell(u'Created by test ³')) cc1 = new_code_cell(input=u'print(2*6)') cc1.outputs.append(new_output(output_text=u'12')) cc1.outputs.append( new_output(output_png=png_green_pixel, output_type='pyout')) ws.cells.append(cc1) with io.open(pjoin(nbdir, 'foo', 'testnb.ipynb'), 'w', encoding='utf-8') as f: write(nb, f, format='ipynb') self.nbconvert_api = NbconvertAPI(self.base_url())
def test_coalesce_sequenced_streams(self): """Can the coalesce streams preprocessor merge a sequence of streams?""" outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="0"), nbformat.new_output(output_type="stream", stream="stdout", output_text="1"), nbformat.new_output(output_type="stream", stream="stdout", output_text="2"), nbformat.new_output(output_type="stream", stream="stdout", output_text="3"), nbformat.new_output(output_type="stream", stream="stdout", output_text="4"), nbformat.new_output(output_type="stream", stream="stdout", output_text="5"), nbformat.new_output(output_type="stream", stream="stdout", output_text="6"), nbformat.new_output(output_type="stream", stream="stdout", output_text="7")] cells=[nbformat.new_code_cell(input="# None", prompt_number=1,outputs=outputs)] worksheets = [nbformat.new_worksheet(cells=cells)] nb = nbformat.new_notebook(name="notebook1", worksheets=worksheets) res = self.build_resources() nb, res = coalesce_streams(nb, res) outputs = nb.worksheets[0].cells[0].outputs self.assertEqual(outputs[0].text, u'01234567')
def build_notebook(self): """Build a reveal slides notebook in memory for use with tests. Overrides base in TransformerTestsBase""" outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="a")] slide_metadata = {'slideshow' : {'slide_type': 'slide'}} subslide_metadata = {'slideshow' : {'slide_type': 'subslide'}} cells=[nbformat.new_code_cell(input="", prompt_number=1, outputs=outputs), nbformat.new_text_cell('markdown', source="", metadata=slide_metadata), nbformat.new_code_cell(input="", prompt_number=2, outputs=outputs), nbformat.new_text_cell('markdown', source="", metadata=slide_metadata), nbformat.new_text_cell('markdown', source="", metadata=subslide_metadata)] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def build_notebook(self): """Build a notebook in memory for use with preprocessor tests""" outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="a"), nbformat.new_output(output_type="text", output_text="b"), nbformat.new_output(output_type="stream", stream="stdout", output_text="c"), nbformat.new_output(output_type="stream", stream="stdout", output_text="d"), nbformat.new_output(output_type="stream", stream="stderr", output_text="e"), nbformat.new_output(output_type="stream", stream="stderr", output_text="f"), nbformat.new_output(output_type="png", output_png='Zw==')] # g out = nbformat.new_output(output_type="application/pdf") out['application/pdf'] = 'aA==' # h outputs.append(out) cells=[nbformat.new_code_cell(input="$ e $", prompt_number=1,outputs=outputs), nbformat.new_text_cell('markdown', source="$ e $")] worksheets = [nbformat.new_worksheet(cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def test_contents_manager(self): "make sure ContentsManager returns right files (ipynb, bin, txt)." nbdir = self.notebook_dir.name base = self.base_url() nb = new_notebook(name='testnb') ws = new_worksheet() nb.worksheets = [ws] ws.cells.append(new_heading_cell(u'Created by test ³')) cc1 = new_code_cell(input=u'print(2*6)') cc1.outputs.append(new_output(output_text=u'12', output_type='stream')) ws.cells.append(cc1) with io.open(pjoin(nbdir, 'testnb.ipynb'), 'w', encoding='utf-8') as f: write(nb, f, format='ipynb') with io.open(pjoin(nbdir, 'test.bin'), 'wb') as f: f.write(b'\xff' + os.urandom(5)) f.close() with io.open(pjoin(nbdir, 'test.txt'), 'w') as f: f.write(u'foobar') f.close() r = requests.get(url_path_join(base, 'files', 'testnb.ipynb')) self.assertEqual(r.status_code, 200) self.assertIn('print(2*6)', r.text) json.loads(r.text) r = requests.get(url_path_join(base, 'files', 'test.bin')) self.assertEqual(r.status_code, 200) self.assertEqual(r.headers['content-type'], 'application/octet-stream') self.assertEqual(r.content[:1], b'\xff') self.assertEqual(len(r.content), 6) r = requests.get(url_path_join(base, 'files', 'test.txt')) self.assertEqual(r.status_code, 200) self.assertEqual(r.headers['content-type'], 'text/plain') self.assertEqual(r.text, 'foobar')
def test_coalesce_replace_streams(self): """Are \\r characters handled?""" outputs = [nbformat.new_output(output_type="stream", stream="stdout", output_text="z"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\ra"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\nz\rb"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\nz"), nbformat.new_output(output_type="stream", stream="stdout", output_text="\rc\n"), nbformat.new_output(output_type="stream", stream="stdout", output_text="z\rz\rd")] cells=[nbformat.new_code_cell(input="# None", prompt_number=1,outputs=outputs)] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] nb = nbformat.new_notebook(name="notebook1", worksheets=worksheets) res = self.build_resources() nb, res = coalesce_streams(nb, res) outputs = nb.worksheets[0].cells[0].outputs self.assertEqual(outputs[0].text, u'a\nb\nc\nd')
def build_notebook(self): """Build a notebook in memory for use with preprocessor tests""" outputs = [ nbformat.new_output(output_type="stream", stream="stdout", output_text="a"), nbformat.new_output(output_type="text", output_text="b"), nbformat.new_output(output_type="stream", stream="stdout", output_text="c"), nbformat.new_output(output_type="stream", stream="stdout", output_text="d"), nbformat.new_output(output_type="stream", stream="stderr", output_text="e"), nbformat.new_output(output_type="stream", stream="stderr", output_text="f"), nbformat.new_output(output_type="png", output_png=b"Zw=="), ] # g cells = [ nbformat.new_code_cell(input="$ e $", prompt_number=1, outputs=outputs), nbformat.new_text_cell("markdown", source="$ e $"), ] worksheets = [nbformat.new_worksheet(name="worksheet1", cells=cells)] return nbformat.new_notebook(name="notebook1", worksheets=worksheets)
def to_ipython_cell(self, df): code = [] outputs = [] local = {"data": self.data, "parameters": self.parameters} for line in self.code.split("\n"): if line.endswith("# INPUT"): a, b = line.split("=") a, b = a.strip(), b.strip() value = eval(b, None, local) line = '{a} = {value}'.format(a=a, value=repr(value)) code.append(line) elif line.endswith("# OUTPUT"): a, b = line.split("=") outputs += [x.strip() for x in a.split(",")] code.append(line[4:-len("# OUTPUT")].rstrip()) elif "def" not in line and not line.startswith("@") and "return" not in line: code.append(line[4:]) # get rid of first indent code = "\n".join(code) gs = {"bz": bz, "pd": pd, "df": df, "stats": stats, "np":np, "StatisticalTest":StatisticalTest} ls = {} exec(code, gs, ls) output_cells = [] for output in outputs: kwargs = {} if hasattr(ls[output], "to_html"): kwargs["output_html"] = ls[output].to_html() o = current.new_output("display_data", str(ls[output]), **kwargs) output_cells.append(o) code += "\ndisplay({})".format(output) return current.new_code_cell(code, outputs=output_cells)