def test_jupyter_notebook(gallery_conf): """Test that written ipython notebook file corresponds to python object""" file_conf, blocks = sg.split_code_and_text_blocks('tutorials/plot_parse.py') example_nb = jupyter_notebook(blocks, gallery_conf) with tempfile.NamedTemporaryFile('w', delete=False) as f: save_notebook(example_nb, f.name) try: with open(f.name, "r") as fname: assert json.load(fname) == example_nb finally: os.remove(f.name) assert example_nb.get('cells')[0]['source'][0] == "%matplotlib inline" # Test custom first cell text test_text = '# testing\n%matplotlib notebook' gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf) assert example_nb.get('cells')[0]['source'][0] == test_text # Test empty first cell text test_text = None gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf) assert example_nb.get('cells')[0]['source'][0].startswith('\nThe Header Docstring')
def test_jupyter_notebook(gallery_conf): """Test that written ipython notebook file corresponds to python object""" file_conf, blocks = sg.split_code_and_text_blocks( 'tutorials/plot_parse.py') example_nb = jupyter_notebook(blocks, gallery_conf) with tempfile.NamedTemporaryFile('w', delete=False) as f: save_notebook(example_nb, f.name) try: with open(f.name, "r") as fname: assert json.load(fname) == example_nb finally: os.remove(f.name) assert example_nb.get('cells')[0]['source'][0] == "%matplotlib inline" # Test custom first cell text test_text = '# testing\n%matplotlib notebook' gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf) assert example_nb.get('cells')[0]['source'][0] == test_text # Test empty first cell text test_text = None gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf) assert example_nb.get('cells')[0]['source'][0].startswith( '\nThe Header Docstring')
def test_jupyter_notebook(): """Test that written ipython notebook file corresponds to python object""" blocks = sg.split_code_and_text_blocks('tutorials/plot_parse.py') example_nb = jupyter_notebook(blocks) with tempfile.NamedTemporaryFile('w', delete=False) as f: save_notebook(example_nb, f.name) try: with open(f.name, "r") as fname: assert json.load(fname) == example_nb finally: os.remove(f.name)
def test_jupyter_notebook(gallery_conf): """Test that written ipython notebook file corresponds to python object.""" file_conf, blocks = sg.split_code_and_text_blocks( 'tutorials/plot_parse.py') target_dir = 'tutorials' example_nb = jupyter_notebook(blocks, gallery_conf, target_dir) with tempfile.NamedTemporaryFile('w', delete=False) as f: save_notebook(example_nb, f.name) try: with open(f.name, "r") as fname: assert json.load(fname) == example_nb finally: os.remove(f.name) assert example_nb.get('cells')[0]['source'][0] == "%matplotlib inline" # Test custom first cell text test_text = '# testing\n%matplotlib notebook' gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf, target_dir) assert example_nb.get('cells')[0]['source'][0] == test_text # Test empty first cell text test_text = None gallery_conf['first_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf, target_dir) cell_src = example_nb.get('cells')[0]['source'][0] assert re.match('^[\n]?# Alternating text and code', cell_src) # Test custom last cell text test_text = '# testing last cell' gallery_conf['last_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf, target_dir) assert example_nb.get('cells')[-1]['source'][0] == test_text # Test empty first cell text test_text = None gallery_conf['last_notebook_cell'] = test_text example_nb = jupyter_notebook(blocks, gallery_conf, target_dir) cell_src = example_nb.get('cells')[-1]['source'][0] assert re.match("^Last text block.\n\nThat[\\\\]?'s all folks !", cell_src)
def py_to_ipynb(py_path): """ Convert python script to ipython notebook Returns ------- """ nb_path = sph_nb.replace_py_ipynb(py_path) if not Path(nb_path).exists(): file_conf, blocks = sph_nb.split_code_and_text_blocks(py_path) gallery_config = gg.DEFAULT_GALLERY_CONF gallery_config['first_notebook_cell'] = None example_nb = sph_nb.jupyter_notebook(blocks, gallery_config, nb_path) code = example_nb['cells'][1]['source'][0] # If using mayavi add in the notebook initialisation so that figures render properly if re.search("from mayavi import mlab", code): if not re.search("mlab.init_notebook()", code): new_code = re.sub( "from mayavi import mlab", "from mayavi import mlab\nmlab.init_notebook()", code) example_nb['cells'][1]['source'][0] = new_code sph_nb.save_notebook(example_nb, nb_path) return nb_path