Last active
April 9, 2022 16:51
Revisions
-
minrk revised this gist
Apr 27, 2013 . 1 changed file with 10 additions and 2 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,13 +11,21 @@ from Queue import Empty try: from IPython.kernel import KernelManager except ImportError: from IPython.zmq.blockingkernelmanager import BlockingKernelManager as KernelManager from IPython.nbformat.current import reads, NotebookNode def run_notebook(nb): km = KernelManager() km.start_kernel(stderr=open(os.devnull, 'w')) try: kc = km.client() except AttributeError: # 0.13 kc = km kc.start_channels() shell = kc.shell_channel # simple ping: -
minrk revised this gist
Apr 27, 2013 . 1 changed file with 7 additions and 5 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -11,14 +11,15 @@ from Queue import Empty from IPython.kernel import KernelManager from IPython.nbformat.current import reads, NotebookNode def run_notebook(nb): km = KernelManager() km.start_kernel(stderr=open(os.devnull, 'w')) kc = km.client() kc.start_channels() shell = kc.shell_channel # simple ping: shell.execute("pass") shell.get_msg() @@ -47,6 +48,7 @@ def run_notebook(nb): print " ran %3i cells" % cells if failures: print " %3i cells raised exceptions" % failures kc.stop_channels() km.shutdown_kernel() del km @@ -55,4 +57,4 @@ def run_notebook(nb): print "running %s" % ipynb with open(ipynb) as f: nb = reads(f.read(), 'json') run_notebook(nb) -
minrk created this gist
May 6, 2012 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,58 @@ #!/usr/bin/env python """ simple example script for running notebooks and reporting exceptions. Usage: `checkipnb.py foo.ipynb [bar.ipynb [...]]` Each cell is submitted to the kernel, and checked for errors. """ import os,sys,time from Queue import Empty from IPython.zmq.blockingkernelmanager import BlockingKernelManager from IPython.nbformat.current import reads, NotebookNode def run_notebook(nb): km = BlockingKernelManager() km.start_kernel(stderr=open(os.devnull, 'w')) km.start_channels() shell = km.shell_channel # simple ping: shell.execute("pass") shell.get_msg() cells = 0 failures = 0 for ws in nb.worksheets: for cell in ws.cells: if cell.cell_type != 'code': continue shell.execute(cell.input) # wait for finish, maximum 20s reply = shell.get_msg(timeout=20)['content'] if reply['status'] == 'error': failures += 1 print "\nFAILURE:" print cell.input print '-----' print "raised:" print '\n'.join(reply['traceback']) cells += 1 sys.stdout.write('.') print print "ran notebook %s" % nb.metadata.name print " ran %3i cells" % cells if failures: print " %3i cells raised exceptions" % failures km.shutdown_kernel() del km if __name__ == '__main__': for ipynb in sys.argv[1:]: print "running %s" % ipynb with open(ipynb) as f: nb = reads(f.read(), 'json') run_notebook(nb)