Notebook Dump
dump
shows notebook and cell information, and cell sources of Jupyter notebooks
in a compact way on stdout
(more compact than nbshow
of the nbdime
package).
Which elements of a notebook are dumped can be selected through options. The output format can also be adjusted via options.
Options
The following options are supported by dump
:
-g, --notebook-info, -G, --no-notebook-info
show global notebook information (default: True)
-c, --cell-info, -C, --no-cell-info
show cell information (default: True)
-s, --sources, -S, --no-sources
show cell sources (default: True)
-t TYPES, --cell-types TYPES
comma-separated list of cell types to dump (default:
'markdown,code,raw')
-p STRING, --prefix STRING
pre/postfix for information lines (default: '=====')
-i INT, --indent INT indentation level for source lines (default: 2)
-l, --line-numbers, -L, --no-line-numbers
show source line numbers (default: False)
-e INT, --cell-spacing INT
number of empty lines between cells (default: 0)
Examples
A dump of notebook short.ipynb
in verbose mode:
$ nbtb dump -v short.ipynb
Options for nbdump:
Dump notebook info: True
Dump cell info: True
Dump cell sources: True
Dump cell types: markdown,code,raw
Prefix for information lines: =====
Source line indentation level: 2
Show source line numbers: False
Cell spacing lines: 0
::::::::::::::
short.ipynb
::::::::::::::
===== nbformat: 4.2 | kernel: python3 | language: python 3.6.1 =====
===== cells: 2 =====
===== cell 0: markdown | metadata: collapsed =====
# Short Notebook for Testing
* **Bold**
* _Italic_
* `Typewriter`
* $e^{\pi i} + 1 = 0$
===== cell 1: code | outputs: 2 =====
print(6 * 7)
1 + 1
Notebooks processed: 1
A dump that shows notebook and cell information only (no sources):
$ nbtb dump -S test.ipynb
===== nbformat: 4.2 | kernel: python3 | language: python 3.6.1 =====
===== cells: 19 | metadata: celltoolbar,toc =====
===== cell 0: markdown =====
===== cell 1: markdown =====
===== cell 2: markdown =====
===== cell 3: code | metadata: collapsed | outputs: 1 =====
===== cell 4: code | metadata: collapsed | outputs: 1 =====
===== cell 5: code | metadata: collapsed | outputs: 1 =====
===== cell 6: code | outputs: 1 =====
===== cell 7: code | outputs: 2 =====
===== cell 8: code | outputs: 2 =====
===== cell 9: markdown | tags: YourTurn =====
===== cell 10: code | metadata: scrolled | outputs: 1 =====
===== cell 11: code | metadata: collapsed =====
===== cell 12: code | metadata: scrolled | tags: YourTurn | outputs: 1 =====
===== cell 13: code | metadata: collapsed =====
===== cell 14: markdown =====
===== cell 15: code | tags: YourTurn,Test | outputs: 2 =====
===== cell 16: code | metadata: collapsed =====
===== cell 17: markdown | attachments: 1 =====
===== cell 18: markdown =====
A dump of MarkDown sources only, without indentation:
$ nbtb dump -G -C -t markdown -i 0 test.ipynb
# Test Notebook
This is a notebook for testing purposes;
in particular,
for testing the various scripts.
It has a few formatted _MarkDown_ cells.
And some simple code cells, with various execution effects;
some (not only the last) has an error.
Various tags have been set.
## A Section
Demonstrating **bold face**.
This one has a $\LaTeX$ formula: $e^{\pi i} + 1 = 0$.
Print the first one hundred numbers, their squares, and their cubes.
Produce a line plot of `df`.
![jupyter.png](attachment:jupyter.png)
Last
cell
with
more
than
five
lines.
A dump of code cells without global notebook information,
without indentation, with cell spacing 1, and info prefix #####
:
$ nbtb dump -G -t code -i 0 -l 1 -p '#####' test.ipynb
##### cell 3: code | metadata: collapsed | outputs: 1 #####
print([i ** 3 for i in range(6)]) # output as stream in stdout
##### cell 4: code | metadata: collapsed | outputs: 1 #####
# NameError
undefined
##### cell 5: code | metadata: collapsed | outputs: 1 #####
6 * 7 # output as execution result
##### cell 6: code | outputs: 1 #####
6 / 0 # ZeroDivisionError
##### cell 7: code | outputs: 2 #####
# stdout and execution result
print('Hello, World!')
'Thanks'
##### cell 8: code | outputs: 2 #####
import sys
print('Message on stdout')
print('Message on stderr', file=sys.stderr)
##### cell 10: code | metadata: scrolled | outputs: 1 #####
for i in range(100): # output as stream in stdout
print(i, i ** 2, i ** 3)
##### cell 11: code | metadata: collapsed #####
import pandas as pd
##### cell 12: code | metadata: scrolled | tags: YourTurn | outputs: 1 #####
df = pd.DataFrame([3, 1, 4, 1, 5, 9])
df
##### cell 13: code | metadata: collapsed #####
# import seaborn # commented out to avoid depencency on seaborn
# %matplotlib inline # commented out to avoid dependcy on matplotlib
##### cell 15: code | tags: YourTurn,Test | outputs: 2 #####
# df.plot(kind='line') # commented out to avoid dependency on matplotlib
##### cell 16: code | metadata: collapsed #####
print(42) # output to be deleted afterwards
A dump of a notebook with source line numbers:
$ nbtb dump -l short.ipynb
===== nbformat: 4.2 | kernel: python3 | language: python 3.6.1 =====
===== cells: 2 =====
===== cell 0: markdown | metadata: collapsed =====
1| # Short Notebook for Testing
2|
3| * **Bold**
4| * _Italic_
5| * `Typewriter`
6| * $e^{\pi i} + 1 = 0$
===== cell 1: code | outputs: 2 =====
1| print(6 * 7)
2| 1 + 1