Example #1
0
    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')
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
 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)
Example #6
0
    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())
Example #8
0
    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')
Example #9
0
    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)
Example #10
0
    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')
Example #13
0
    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)
Example #14
0
File: base.py Project: 2t7/ipython
    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)
Example #15
0
    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')
Example #16
0
    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')
Example #17
0
    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')
Example #18
0
    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)
Example #19
0
    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)
Example #20
0
 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)