In [1]:
%matplotlib inline
In [2]:
from nbloader import Notebook
from nbloader.widget import NotebookWidget, Tab
notebook = Notebook('test.ipynb')
# tag __init__ is executed
assert notebook.ns['a'] == 5
try:
notebook.ns['b']
except KeyError:
assert True
else:
assert False
notebook.run_all()
assert notebook.ns['a'] == 6
assert notebook.ns['b'] == 10
b = 6
assert notebook.ns['b'] == 10
# testing interactivity
c, d = 2, 3
notebook = Notebook('test.ipynb', ns=globals())
assert notebook.ns['c'] == c
assert notebook.ns['d'] == d
assert notebook.run_tag('create_b').ns['b'] == 10
assert b == 10
In [3]:
notebook.summary()
In [ ]:
In [4]:
notebook = Notebook('test.ipynb')
print('----- init done --------')
notebook.run_tag('add_one')
print(notebook.ns['a']) # 6
assert notebook.ns['a'] == 6
notebook.run_tag('add_one')
print(notebook.ns['a']) # 7
assert notebook.ns['a'] == 7
notebook.ns['a'] = 0
notebook.run_tag('add_one')
print(notebook.ns['a']) # 1
assert notebook.ns['a'] == 1
In [5]:
for c in notebook.cells:
print(c['tags'])
In [6]:
# we should see everything run twice
notebook.run_tag('Data')
notebook.run_tag('# Data')
print('-----data h1 done-----')
notebook.run_tag('Data 1')
notebook.run_tag('## Data 1')
print('-----data 1 h2 done-----')
notebook.run_tag('Data 2')
notebook.run_tag('## Data 2')
print('-----data 2 h2 done-----')
notebook.run_tag('Plot')
notebook.run_tag('# Plot')
print('-----plot h1 done-----')
notebook.run_tag('Plot 1')
notebook.run_tag('## Plot 1')
print('-----plot 1 h2 done-----')
notebook.run_tag('Plot 2')
notebook.run_tag('## Plot 2')
print('-----plot 2 h2 done-----')
In [7]:
notebook.ns['plt'].rcParams['figure.figsize'] = 15, 8
In [8]:
tab = Tab()
display(tab)
with tab.capture_item('init'):
notebook = NotebookWidget('test.ipynb')
notebook.ast_node_interactivity = 'last_expr'
print('Data')
notebook.run_tag('Data', collapsed=True)
notebook.run_tag('Data', append=True)
# notebook.run_tag('__skip__', append=True)
notebook.run_tag('Data', append=True)
notebook.run_tag('Data', append=True)
notebook.run_tag('Data', append=True)
for i in range(5):
with tab.capture_item(str(i)):
print(i)
notebook.ns['cycles'] += i
notebook.run_tag('Data', show=False)
print('Plot')
notebook.run_tag('Plot')
In [9]:
notebook.show_cells('This is a test notebook')
In [10]:
notebook = Notebook('test.ipynb', autorefresh=True)
notebook.run_tag('Data')
notebook.run_tag('Plot');
In [11]:
notebook.run_tag(('# Plot', 'Plot 1'))
try:
notebook.run_tag(('# Plot', 'Plot 1234'))
except AssertionError:
assert True
else:
assert False
In [ ]: