Automatic execution of code blocks


Compile this document with

doconce format ipynb execute.do.txt --execute

Hidden execution cells (pyhid, pycod-e) can be used to perform operations (e.g. imports, variable initializations) without showing any cell. The pyhid environment executes and hides the cell in formats other than .ipynb:

The pycod-e environment executed but hides the cell also in .ipynb files:
import os
os.listdir(".")
a = 1

pycod is a normal cell that should execute automatically when using --execute. Note that this cells relies on code executed in a previous hidden cell:
print(sys.version)
b = 2
c = a + b
print("The result is {}".format(c))
c

The *-t environment (e.g. pycod-t) formats a cell to text, and can be used to print an example
# This is a for-loop example
for i in [0,10]:
  print(i)

The *out (e.g. pycod-out) environment can be used to write a cell output:
# This is a normal pycod cell
1/0

1/0: You cannot divide by zero

Plotting

This is a cell that should plot and output:

from pylab import *
x = linspace(0, 10, 100)
plot(x, x*x)
show()

To improve quality when exporting to LaTeX, the following code has automatically been run to enable PDF export in notebooks.

from IPython.display import set_matplotlib_formats
set_matplotlib_formats('png', 'pdf')

Ignore output

Predefined output can be omitted by passing --ignore_output to DocOnce. This will remove all environments ending with out.

a = 2
print(a)

2

Code with errors

If code contains errors, it will still be run and the exception shown as part of the output:

for a in range(10)
    print(a)

Opening files

The working directory is the same as the .do.txt file. You may want to use os.chdir to change the directory.

with open("../LICENSE") as f:
    print(f.read())